Ir para conteúdo

POWERED BY:

Arquivado

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

Marco Aurelio de Souza

[Resolvido] Código não interpretado PHP

Recommended Posts

Pessoal, to com um problema chato e nao consigo resolver... Há um site, cujo index.php puxa as páginas html de uma pasta chamada "pagina" e joga o conteudo dentro desse index.php, num conteiner. Porem, acredito que por uma atualização no servidor do cliente, as paginas não são mais carregadas e é informado o erro de "pagina nao enconrada". O código, ao meu ver simples, da pagina index.php é esse:

 

<?php
    $pagina = strlen($_GET['pagina']) > 3 ? $_GET['pagina'] : 'index';

    //lista dos arquivos a serem ignorados pelo template
    $igonore_list = array('flavio','alex','aparecida','paulo',
                          'marcelo','vinicius','paulo',                        
                          '0001','0002','0003','0004','0005','0006','0007');
    if(in_array($pagina, $igonore_list))
    {
        include('paginas'.DIRECTORY_SEPARATOR.$pagina.'.html');
        exit;
    }
	//lista de imagens do menu esquerdo
	$imagelist = array(	'index' 		=> 'home.gif',
						'empresa' 		=> 'empresa.gif',
						'solucoes' 		=> 'servicos.gif',
						'portfolio' 	=> 'portfolio.gif',
						'novidades' 	=> 'novidades.gif',
						'parceiros'     => 'parceiros.gif',
						'fale_conosco' 	=> 'fale_conosco.gif');
?>

Atualmente ao enrar no endereco somente a pagina index.html é exibida dentro da index.php, ao se clicar nos links que puxam as outras html's, dá pagina nao enconrada, ou seja, não ocorre a interpretacao do codigo em php que puxa, atraves do array, as html's dentro da pasta "pagina"

 

Alguem sabe me dizer o que pode estar acontecendo? No servidor que funciona é a versão 5.2.9 do PHP. Em outros foruns fizeram comentarios sobre um arquivo chamado ".htaccess" ma ao jogar esse arquivo(do servidor que funciona) no servidor que nao funciona, nenhuma pagina é exibida, nem mesmo a principal, index.php (junto com a index.html). Comentaram tambem que poderia ser uma alteração no arquivo, do servidor que nao funciona, php-cgi.ini (algumas diretivas deveriam ser alteradas, segundo informacoes da locaweb) mas sinceramente não tenho ideia do que mudar. O pessoal do suporte foi muito vago e apenas me passou esse link ->

http://wiki.locaweb.com.br/pt-br/Como_alterar_as_diretivas_do_PHP

 

Que nao me serviu de nada pois não compreendi o erro ainda.

 

Alguma luz?

Compartilhar este post


Link para o post
Compartilhar em outros sites

O servidor que funcionava era Windows e o novo Linux?

 

Como fica o link que você acessa? Está online? Tem como ver o erro acontecendo?

 

Carlos Eduardo

 

Oi Carlos... o que funciona, certeza de ser Linux, PHP versao 5.2.9 e apache 2.0.6

O que nao funciona, nao tenho certeza....

 

FUNCIONA -> www.bcast.com.br/net (php 5.2.9 apache 2.0.6)

NAO FUNCIONA -> teste 1 -> www.castcomunicacao.com/testnet (versao php4>)

NAO FUNCIONA -> www.netmaker.com.br (locaweb + php 4>)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas tem alguma coisa errada no teu link. Olha como ele fica.

 

http://www.castcomunicacao.com/testnet/solucoes.html

 

O teu código só deve funcionar utilizando .htaccess (pelo que eu estou vendo do seu código e pelas informações que você passou) que só existe no Apache. Verifique qual a versão do servidor nos domínios com defeito e qual a plataforma (Linux ou Windows). Dê preferência por hospedagem Linux com PHP 5>.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas tem alguma coisa errada no teu link. Olha como ele fica.

 

http://www.castcomunicacao.com/testnet/solucoes.html

 

O teu código só deve funcionar utilizando .htaccess (pelo que eu estou vendo do seu código e pelas informações que você passou) que só existe no Apache. Verifique qual a versão do servidor nos domínios com defeito e qual a plataforma (Linux ou Windows). Dê preferência por hospedagem Linux com PHP 5>.

 

Carlos Eduardo

 

Viu a parte do codigo em php? ele puxa as paginas em html, dentro da pasta "paginas" e joga no container do index.php. A primeira pagina, a index.html, é puxada logo ao entrar no site porem as outras nao estao sendo reconhecidas, ou seja, o script que puxa as paginas nao esta sendo interpretado.

 

A hospedagem é linux, a versao do php, sei apenas que é acima de 4.

 

Em relacao ao arquivo .htaccess, quando eu o jogo (fiz uma copia do servidor aonde funciona) na pasta raiz, o site desaparece, nem o index.html aparece.

 

Alguem comentou algo sobre "fopen" e "open_basedir" mas, após breve busca, não achei nada que pudesse me ajudar....

 

Não posso no momento recomendar outra hospedagem, preciso de argumentos suficientes e, como joguei o site em outro servidor que tambem nao funciona, fico mais ainda sem justificativas para a migração, uma vez que o problema tambem possa estar numa atualizacao do script.

 

Entao...?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tá... vamos começar de novo... Você tem uma página index.php, que o código está ali em cima, certo?

 

As outras páginas estão aonde? Em qual pasta? Qual o nome delas?

 

Veja que o seu código procura a $_GET['pagina'], mas o teu link não cria ela. Um link com esta variável seria assim.

http://www.castcomunicacao.com/testnet/index.php?pagina=empresa

 

Veja que ele abre. O que acontece é que o .htaccess reescreve a url. Quando você escreve http://www.castcomunicacao.com/testnet/empresa.html, ele entende http://www.castcomunicacao.com/testnet/index.php?pagina=empresa e abre o que deveria abrir.

 

Confira se a sua hospedagem tem suporte a Rewrite Engine via .htaccess. Caso tenha, poste aqui o conteúdo deste arquivo, porque o problema deve estar ali.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tá... vamos começar de novo... Você tem uma página index.php, que o código está ali em cima, certo?

 

As outras páginas estão aonde? Em qual pasta? Qual o nome delas?

 

Veja que o seu código procura a $_GET['pagina'], mas o teu link não cria ela. Um link com esta variável seria assim.

http://www.castcomunicacao.com/testnet/index.php?pagina=empresa

 

Veja que ele abre. O que acontece é que o .htaccess reescreve a url. Quando você escreve http://www.castcomunicacao.com/testnet/empresa.html, ele entende http://www.castcomunicacao.com/testnet/index.php?pagina=empresa e abre o que deveria abrir.

 

Confira se a sua hospedagem tem suporte a Rewrite Engine via .htaccess. Caso tenha, poste aqui o conteúdo deste arquivo, porque o problema deve estar ali.

 

Carlos Eduardo

 

Oi Carlos, bom dia.

 

Concordo que não cria ... mas como pode então funcionar em www.bcast.com.br/net com o mesmo código? é o ht.access que interpreta e faz funcionar?

 

Devo solicitar algum arquivo com o pessoal da hospedagem? Eu baixei esse arquivo ".htaccess" do servidor que funciona (bcast.com.br/net) mas não consigo visualizar esse conteudo...

Compartilhar este post


Link para o post
Compartilhar em outros sites

é o .htaccess que interpreta e faz funcionar?

Sim. Ele 'lê' e 'transforma', como eu falei.

 

mas como pode então funcionar em www.bcast.com.br/net com o mesmo código?

 

Olha o que eu coloquei no seu post anterior

 

Confira se a sua hospedagem tem suporte a Rewrite Engine via .htaccess. Caso tenha, poste aqui o conteúdo deste arquivo, porque o problema deve estar ali.

 

O 'deste arquivo' é o .htaccess.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Peguei as versões do novo servidor:

 

PHP 5.2.5

Apache/2.2.9

 

Solicitei tambem "informação sobre suporte a Rewrite Engine via .htaccess." + o próprio arquivo.

 

Servidor de teste3 -> http://200.150.144.126/netmaker/

 

Obrigado por se preocupar em ajudar Carlos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha, como eu não entendo muito de expressão regular e de .htaccess, vou te sugerir o seguinte. Tira a primeira linha (que EU não sei pra que serve e não uso) e testa pra ver se funciona, deixando assim.

 

RewriteEngine on
RewriteRule ^([^.]+).html$ index.php?pagina=$1

Carlos Eduardo

PS: Vamos esperar aparecer alguém que conheça mais sobre isto pra te ajudar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Após remover a 1 linha do .htaccess e atualizar no servidor, a pagina nao carrega, informando um erro:

 

"Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

 

Please contact the server administrator, webmaster@castcomunicacao.com.br and inform them of the time the error occurred, and anything you might have done that may have caused the error.

 

More information about this error may be available in the server error log."

 

Quando rmeovo o arquivo .htaccess o site volta a aparecer mas continua com os erros dos outros posts acima.

 

Alqguem pode ajudar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Após remover a 1 linha do .htaccess e atualizar no servidor, a pagina nao carrega, informando um erro:

 

Amigo, a primeira linha pode continuar...

 

Faça o seguinte:

 

1. Salve o arquivo .htaccess com exatamente o conteúdo abaixo:

RewriteEngine on
Options +FollowSymlinks

RewriteRule ^([^.]+).html$ index.php?pagina=$1 [QSA]

2. Renomeie seu arquivo index.php para index.php.old e crie um novo index.php com exatamente o conteúdo abaixo:

<?php
var_dump( $_REQUEST );

Coloque a saída aqui.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Joao, meu codigo ficou assim:

<?php
	var_dump( $_REQUEST );
    $pagina = strlen($_GET['pagina']) > 3 ? $_GET['pagina'] : 'index';
    //lista dos arquivos a serem ignorados pelo template
    $igonore_list = array('flavio','alex','aparecida','paulo',
                          'marcelo','vinicius','paulo',
                          '0001','0002','0003','0004','0005','0006','0007');
    if(in_array($pagina, $igonore_list))
    {
        include('paginas'.DIRECTORY_SEPARATOR.$pagina.'.html');
        exit;
    }
	//lista de imagens do menu esquerdo
	$imagelist = array(	'index' 		=> 'home.gif',
						'empresa' 		=> 'empresa.gif',
						'solucoes' 		=> 'servicos.gif',
						'portfolio' 	=> 'portfolio.gif',
						'novidades' 	=> 'novidades.gif',
						'parceiros'     => 'parceiros.gif',
						'fale_conosco' 	=> 'fale_conosco.gif');
?>

Modifiquei tambem o arquivo .htaccess, que ficou com esse conteudo:

RewriteEngine on
Options +FollowSymlinks
RewriteRule ^([^.]+).html$ index.php?pagina=$1 [QSA]
Ao jogar no servidor e digitar o link (www.castcomunicacao.com/testnet), aparece "Internal Server Error"

 

Será que nao existe uma alterniativa/adaptacao pra que as paginas sejam exibidas?

 

ê surra....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha, isto pode ser em função da forma que é enviado... (hã!!!!) O programa de FTP, dependendo das configurações, coloca alguns caracteres estranhos no início do código, o que faz com que apresente este Internal Error. Pelo seu provedor você tem acesso a abrir o arquivo .hhtaccess? Se tiver, abre ele e dá uma olhada se não foram adicionados estes caracteres.

 

Carlos Eduardo

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.