Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

mshonorato

[Resolvido] Site funciona no debian mas não no OpenSUSE...

Recommended Posts

Por hora, apenas as referentes ao cadastro no arquivo TXT, dentro da função addEntry().

 

Funcionando a contento, aos poucos você vai removendo as outras existentes.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não foi mostrado NENHUM erro? :o

 

Além de removê-las, adicionou/alterou o que eu disse no post #10?

 

Lembrando que sem o display_errors ativado, mesmo que dê erro e este não sido suprimido pelo arroba, ele não vai aparecer.

 

E mais, testou em outro servidor, com PHP 5.3 (mínimo)?

 

[EDIT]

 

Olhando melhor o source da página e comparando-o com o source do arquivo, há uma boa possibilidade de não funcionar.

 

Você diz que não é programador e que não desenvolveu, mas você tem algum conhecimento, mesmo que básico sobre a linguagem, certo?

 

Sendo assim eu sugiro que você reescrva, pouco a pouco esse script. Ou até mesmo baixe outro gratuito. Se não você vai acabar ficando doido tentando consertar tanto coisa que você pode nem saber como foi feita.

 

Um conselho de amigo, comece do zero. Você já sabe o que esse guestbook tem, então crie uma estrutura (papel e lápid mesmo, se for o caso) e comece devagarinho: HTML, banco de dados (arquivos de texto é ruim), primeiras ações e etc.

 

E vá melhorando: Trate os dados, coloque um CAPTCHA (imagem de confirmação)... Depois um Painel Administrativo simples...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na faculdade eu aprendi lógica de programação e C++, então eu tenho uma noção quando vejo o código em php, mas não sei desenvolver em php não.

 

Eu testei esse guestbook no debian squeeze e funcionou perfeitamente. Já no OpenSUSE não funciona nem com reza brava...

 

A primeira coisa que fiz quando não funcionou no servidor OpenSUSE, foi instalar uma máquina virtual com a última versão do OpenSUSE que inclusive a versão do PHP é mais nova do que do debian squeeze e mesmo assim não funcionou.

 

Resumindo, eu acredito que seja alguma opção no OpenSUSE que precisa ser configurada...

 

Há alguns meses atrás, eu tive um problema que o OpenSUSE não reconhecia meu script php escrito assim: <?....?> então eu descobri que precisava escrever assim: <?php ...?> e depois descobri que no arquivo de configuração do php tinha que ativar a opção "short_open_tag" que estava off.

 

Então acho que o problema que estou tendo é semelhante a esse.

 

você conhece as opções do php que tem que estar ativa por padrão?

 

vlw

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então, são várias as opções, nunca vi igual :P

 

Mas as mais importantes são:

 

  • display_errors que deve ser On
  • error_reporting que deve ser, no PHP 5, E_ALL | E_STRICT
  • register_globals que até que o PHP 6 saia e se popularize deve ser Off (que já é o padrão)
  • short_open_tags que pode ser On, mas por questões de compatibilidade deve ser Off
  • allow_url_fopen que, quando On facilita muitas coisas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fala Brunão,

 

Um colega me deu a ideia de olhar o log do apache e encontrei alguns erros, veja:

 

[Tue Jun 28 08:46:59 2011] [error] [client 200.1xx.1xx.1xx] PHP Fatal error: Call to undefined function gzinflate() in /home/mshonorato/public_html/guestbook2/gbook.php on line 1093, referer: http://marcoshonorato.com.br/guestbook2/

[Tue Jun 28 08:46:59 2011] [error] [client 200.x.1x.x6] File does not exist: /home/mshonorato/public_html/favicon.ico

[Tue Jun 28 08:47:00 2011] [error] [client 66.249.71.212] PHP Notice: Undefined variable: REMOTE_ADDR in /home/mshonorato/public_html/usuarios-online/uonline.php on line 14

[Tue Jun 28 08:47:00 2011] [error] [client 66.249.71.212] PHP Notice: Undefined variable: PHP_SELF in /home/mshonorato/public_html/usuarios-online/uonline.php on line 14

[Tue Jun 28 08:47:00 2011] [error] [client 66.249.71.212] PHP Notice: Use of undefined constant mysql_connect - assumed 'mysql_connect' in /home/mshonorato/public_html/usuarios-online/uonline.php on line 17

[Tue Jun 28 08:47:00 2011] [error] [client 66.249.71.212] PHP Notice: Undefined variable: sistema in /home/mshonorato/public_html/usuarios-online/os.php on line 54

[Tue Jun 28 08:47:00 2011] [error] [client 2xx.1xx.xx.1xx] PHP Fatal error: Call to undefined function gzinflate() in /home/mshonorato/public_html/guestbook2/gbook.php on line 1093, referer: http://marcoshonorato.com.br/guestbook2/gbook.php

[Tue Jun 28 08:47:00 2011] [error] [client 2xx.1xx.xx.1xx] File does not exist: /home/mshonorato/public_html/favicon.ico

[Tue Jun 28 08:47:14 2011] [error] [client 2xx.1xx.xx.1xx] PHP Fatal error: Call to undefined function gzinflate() in /home/mshonorato/public_html/guestbook2/gbook.php on line 1150, referer: http://marcoshonorato.com.br/guestbook2/gbook.php?a=sign

[Tue Jun 28 08:47:14 2011] [error] [client 2xx.1xx.xx.1xx] File does not exist: /home/mshonorato/public_html/favicon.ico

Compartilhar este post


Link para o post
Compartilhar em outros sites

As mensagens referentes a gzinflate() significa ausência da Zlib.

 

Não sei direito como se faz no Linux, mas você deve, segundo o manual, configurar o PHP com --with-zlib[=DIR], onde DIR suponho ser o local onde o módulo Zlib se encontra.

 

Quanto às variáveis não definidas como REMOTE_ADDR e PHP_SELF, são índices de $_SERVER. Se elas estão sendo acessadas diretamente, então register_globals está ativado, o que não recomendado.

 

Sendo assim, instale o módulo Zlib e substitua as ocorrência onde devem estar $REMOTE_ADDR por $_SERVER['REMOTE_ADDR']. O mesmo vale para as outras variáveis citadas no log.

 

À parte disso há apenas uma informação de que o favicon não existe. Mas isso não afeta o PHP em si.

 

[EDIT]

 

Veja que há uma chamada a mysql_connect() feita incorretamente, pode ser questejam faltando os parênteses, sendo assim erroneamente interpretada como um constante não definida.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Há alguns meses atrás, eu tive um problema que o OpenSUSE não reconhecia meu script php escrito assim: <?....?> então eu descobri que precisava escrever assim: <?php ...?> e depois descobri que no arquivo de configuração do php tinha que ativar a opção "short_open_tag" que estava off.

 

Então acho que o problema que estou tendo é semelhante a esse.

 

você conhece as opções do php que tem que estar ativa por padrão?

 

vlw

 

Tenta copiar o php.ini (localizado em /etc/php5/apache2) do servidor que está funcionando e substitui no que não está funcionando.

 

:thumbsup:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Posso estar enganado, mas como são versões diferentes do PHP entre eles, pode dar ainda mais problema.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal, busquei no google o que vem a ser esse "gzinflate" e nesse site "http://phpbrasil.com/phorum/read.php?1,115885" uma pessoa dia que tem que habilitar essa opção no php.ini, mas não vejo onde habilitá-la.

 

Vcs tem ideia de como fazer?

 

Sobre o que o Thiago falou sobre copiar o php.ini do debian para o OpenSUSE, isso foi uma das primeiras coisas que fiz mas não resolveu então desfiz.

 

Vou lero manual citado pelo Bruno e posto o resultado.

 

vlw

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pois é, daí já fica complicado pra eu te ajudar. Não manjo nada de Linux. No Windows, quer queira quer não, é só apagar um caracter, salvar o arquivo e reiniciar o Apache.

Compartilhar este post


Link para o post
Compartilhar em outros sites

beleza...

 

Vou buscar a solução em outro lugar então, se eu conseguir a resposta eu posto aqui.

 

flw

Compartilhar este post


Link para o post
Compartilhar em outros sites

Instalei as bibliotecas zlibs e reiniciei o apache, agora pelo menos aparece um erro... rsrs

 

Segue o erro:

 

As palavras e arquivo năo pode ser encontrado! Verifique o nome do arquivo. Na maioria dos servidores os nomes săo CaSe SeNsiTiVe!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aqui, no gbook.php tem essa função filter_bad_words() que ao que parece busca uma lista de palavras a serem filtradas.

 

No arquivo settings.php existe um valor armazenado no índice filter_lang. Esse valor é usado nessa função para montar o path até esse arquivo com a lista.

 

O path que está sendo buscado é badwords/en.php, verifique se esse arquivo existe nesse diretório.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na boa, desisto...

 

você teria algum guestbook em php para me passar? Se não for pedir muito.

 

Gostei muito desse guestbook por isso queria usá-lo, mas se o OpenSUSE não coopera...

 

vlw

Compartilhar este post


Link para o post
Compartilhar em outros sites

Complicado.

 

Normalmente a primeira saída seria os scripts do Fantástico que tem no CPanel das hospedagens.

 

Fora isso, seria quase que por inércia procurar por "Free PHP Guestbook" no Oráculo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então, encontrei outro guestbook muito melhor......

 

Testei no debian e no OpenSUSE virtual e funcionou bem....

 

Quando passei para o servidor onde está meu site apareceu no erro:

 

O servidor encontrou um erro interno e não foi possível completar sua requisição. O servidor está sobrecarregado ou existe um erro em um script CGI.

 

Veja:

 

http://marcoshonorato.com.br/guestbook

 

No log, apareceu o seguinte erro:

 

/home/mshonorato/public_html/guestbook/.htaccess: php_flag not allowed here

 

E meu "/home/mshonorato/public_html/guestbook/.htaccess" está assim:

 

DirectoryIndex index.php index.html

<IfModule mod_php5.c>

php_flag magic_quotes_gpc off

php_flag register_globals off

</IfModule>

<IfModule mod_php4.c>

php_flag magic_quotes_gpc off

php_flag register_globals off

</IfModule>

 

Mas parece que esse problema é bem mais fácil de arrumar.

 

Tem ideia do que seja?

 

vlw

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então, isso:

 

php_flag register_globals off

É para forçar o register_globals a estar desativado, oq ue é já é padrão desde o PHP 4.3, ou seja, é um comando inútil pois, se o script exige que esteja desativado, o programador já não usa alguns dos micro (bem micro mesmo) benefícios que essa diretiva traz.

 

Da mesma forma:

 

php_flag magic_quotes_gpc off

Serve para desabilitar o recurso magic quotes nas variáveis vindas via GET, POST e COOKIE, onde aspas simples e duplas e NUL's são escapados automaticamente.

 

De novo, se o programador exige que esteja desativado, subentende-se que ele trata as informações vindas por esses três meios de forma própria, escapando adequadamente cada elemento perigoso.

 

No geral, se o htaccess tem só isso, pode até apagá-lo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.