Ir para conteúdo

POWERED BY:

Arquivado

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

Pablo Vieira de Souza

Parte do código fonte sendo exibido na tela, script não roda.

Recommended Posts

Fala galera! Minha primeira postagem no fórum e um problema bizarro!

 

Estou configurando um server com Ubuntu 12.04.

 

Instalei o apache 2.4.6, php 5.5.5 e mysql 5.6, e tudo a princípio rodou liso, inclusive o phpmyadmin.

 

O problema foi quando comecei a executar scripts meus, e o php está parando de ser interpretado no meio do código, e exibindo o resto do código fonte na tela.

 

como podem ver no endereço a seguir:

 

http://pjinformatica.dlinkddns.com:8000/remoto/acesso/login.php

 

o numero 0 no inicio da página refere-se a um if(variável > 0), em que ele corta o IF e exibe o resto do código na tela.

 

Já refiz as configurações do PHP e do Apache, e não sei o que pode estar errado.

 

O mesmo script está rodando perfeitamente em outro servidor meu.

 

as informações do meu php estão em http://pjinformatica.dlinkddns.com:8000/info.php

 

Espero que possam me ajudar, abração!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ta aqui a parte inicial do codigo...

 

<?
include '../config/funcoes.php';
conecta_mysql();
if ($CODIGO != NULL)
	{
		session_start();
		$query = mysql_query("SELECT * FROM funcio WHERE CODIGO='{$CODIGO}' AND SENHA='{$SENHA}'");
		$verifica_login = mysql_num_rows($query);

		if ($verifica_login>0)
			{
				while ($row = mysql_fetch_array($query))
					{
						foreach ($row AS $key => $val)
							{
								$$key = stripslashes( $val );
							}
						
            			$_SESSION['CODIGO'] = $CODIGO;
            			$_SESSION['NOME'] = $NOME;
						$_SESSION['SENHA'] = $SENHA;
           				mysql_query("UPDATE funcio SET ULTIMO_ACESSO = now() WHERE CODIGO ='{$CODIGO}'");
  			

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já aconteceu comigo. E é um problema tão simples que dá até raiva.

 

Vi no seu phpinfo() o seguinte:

 

short_open_tag Off

 

 

Tenta trocar a tag de abertura de php para a convencional <?php que vai funcionar!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já aconteceu comigo. E é um problema tão simples que dá até raiva.

 

Vi no seu phpinfo() o seguinte:

 

short_open_tag Off

 

 

Tenta trocar a tag de abertura de php para a convencional <?php que vai funcionar!

 

 

Cara, MUITO obrigado! Eu não lembrava dessa short_open_tag! Habilitei ele no php.ini e o código fonte parou de aparecer... Mas ainda tem algo de errado no php, pois o script não executa ainda, e nem da erro de senha invalida ou algo do tipo, como se não fizesse nada...

 

Tem idéia do que pode ser? Da uma olhada lá no mesmo link

Compartilhar este post


Link para o post
Compartilhar em outros sites

Po. Explica porque isso acontece

 

A short tag open = off não considera os itens dentro de <? como PHP. Isso se resolve trocando por <?php ou habilitando nas configurações do PHP, como nosso amigo fez.

 

Quanto ao problema, você provavelmente deixou o display errors também acusando tudo. Você não declarou as variáveis, mas ele funcionará do mesmo jeito. É apenas um Notice, não um erro fatal (que causa quebra de código).

 

Você pode desabilitar esses erros utilizando error_reporting antes de todo código.

http://php.net/manual/pt_BR/function.error-reporting.php

 

-----------------

 

:assobiando: se respondi sua pergunta, marca como resolvido e dá um pontinho pra mim no botãozinho rep_up.png

Compartilhar este post


Link para o post
Compartilhar em outros sites

como esta usando o php5.5 é melhor vc trocar o acesso do banco de dados para o PDO.

Compartilhar este post


Link para o post
Compartilhar em outros sites

A short tag open = off não considera os itens dentro de <? como PHP. Isso se resolve trocando por <?php ou habilitando nas configurações do PHP, como nosso amigo fez.

 

Quanto ao problema, você provavelmente deixou o display errors também acusando tudo. Você não declarou as variáveis, mas ele funcionará do mesmo jeito. É apenas um Notice, não um erro fatal (que causa quebra de código).

 

Você pode desabilitar esses erros utilizando error_reporting antes de todo código.

http://php.net/manual/pt_BR/function.error-reporting.php

 

:assobiando: se respondi sua pergunta, marca como resolvido e dá um pontinho pra mim no botãozinho rep_up.png

 

O negócio é que não está... Esse é o mesmo script (literalmente o mesmo, copiei e colei) rodando em outro servidor meu (Com php e mysql mais antigos)

 

http://remoto.pjinformatica.org

 

Repare que ele testa se a senha está inválida, etc.

 

Nesse caso nem isso, ele simplesmente não faz nada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O negócio é que não está... Esse é o mesmo script (literalmente o mesmo, copiei e colei) rodando em outro servidor meu (Com php e mysql mais antigos)

conforme a versão do php funcionalidades são adicionadas e/ou removidas

 

This extension is deprecated as of PHP 5.5.0, and will be removed in the future. Instead, the MySQLi or PDO_MySQL extension should be used. See also MySQL: choosing an API guide and related FAQ for more information. Alternatives to this function include:

http://php.net/manual/en/function.mysql-query.php

 

 

Warning: mysql_connect(): Headers and client library minor version mismatch. Headers:50532 Library:50614 in /var/www/remoto/config/funcoes.php on line 6

http://stackoverflow.com/questions/10759334/headers-and-client-library-minor-version-mismatch

Compartilhar este post


Link para o post
Compartilhar em outros sites

A variavel usuario parece não existir, tentei acessar e veja o resultado ->Notice: Undefined index: usuario in /var/www/remoto/acesso/login2.php on line 2

 

 

Abraço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

A função vai ser removida, mas ainda não foi, deveria estar rodando normalmente, acho...

 

A dica foi para voce se acostumar a utilizar as alternativas antes que seja removida, dai você não será "forçado" a aprender tudo e rápido! Rs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Galera, descobri o que estava impedindo o script de funcionar.

 

Quando programei o script, usando o outro servidor, eu recebia o valor dos campos dos formularios diretamente como variáveis, por exemplo: "Campo Codigo => Variável $Codigo

 

Nesse servidor novo, não sei se é pela nova versão do php, ele só retorna o valor no $_POST['Codigo'] (Seguindo o exemplo a cima.

 

Tem como eu configurar para ele retornar o valor como variável, ou vou ter que mudar isso no script todo? (São mais de 100 arquivos razoavelmente grandes, quanto menos trabalho melhor :P)

Compartilhar este post


Link para o post
Compartilhar em outros sites

RECOMENDO USAR ASPAS DUPLAS E USAR <?php ?> em vez de usar o modo <? ?> num vai esquecer de fechar o código em

com o modo <? ?> dá para inserir um script php no formulário e o server interpretar como se fosse um código interno (quando salvado com txt) já o modo <?php ?> não dá para mudar pois já é padrão do php se serviu valeu ! :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sinceramente é mais fácil reescrever.

 

A PDO tem uma API totalmente diferente e o seu código foi planejado com PHP 4 em mente. Além disso, você tem um enorme problema de segurança por usar register_globals e dá para fazer SQL injection fácil fácil.

 

Você pode até usar um framework como o Symfony2, Laravel, etc. para aumentar a produtividade e não ter trabalho nesse tipo de coisa (banco de dados, roteamento, auth), já que ele fornece bastante coisa como base para o desenvolvimento.

 

Apesar de não ter uma ideia exata, não me parece ser um sistema tão complexo.

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.