Ir para conteúdo

POWERED BY:

Arquivado

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

Ferreira Felipe

[Resolvido] Logando sem sucesso

Recommended Posts

Ola pessoal...

Estou com um problema que não sei mais o que fazer...

 

Estou desenvolvendo um sistema porém na parte onde tendo logar, não esta funcionando. Esta me retornando dizendo que a senha ou login estão errados.

 

Veja o código do login.php

<?php 
// Iniciando a Sessão.
// session_start(); 
//conecta com o db
include ("conectar.php");
$nome= $_POST['nome'];
$senha = md5($_POST['senha']);
$_SESSION['usuario'] = $_POST['nome'];
//faz a confirmação de nome e senha no db
$logar = mysql_query("SELECT * FROM login WHERE nome='".addslashes($nome)."' AND senha='".addslashes($senha)."'");
if (strlen($senha) < 1)
echo '<p align="center"> Senha Incorreta, Por favor<BR><a href="javascript:history.back(1);">Tente Novamente</a></p>';
elseif (mysql_num_rows($logar) > 0 ){
header("location: logado.php");
}
else {
echo '<p align="center">Senha ou Nome invalido.<BR><a href="javascript:history.back(1);">Tente novamente.</a></p>';
}
?>

 

Código do index.php

<form action="login.php" method="post">
     <table width="778" height="196" align="center">
       <tr>
         <td width="407" height="56"><img src="img/logo.jpg" alt="" width="181" height="72" align="absmiddle"></td>
         <td width="76" valign="middle">Login:</td>
         <td width="281" valign="middle"><input name="nome" type="text" id="nome" size="15" maxlength="10" /></td>
       </tr>
       <tr>
         <td height="86" valign="middle"><h1 align="center">Controle . . . </h1></td>
         <td valign="top">Senha:</td>
         <td valign="top"><input name="senha" type="password" id="senha" size="15" maxlength="10" /></td>
       </tr>
       <tr>
         <td height="26"><h6> </h6></td>
         <td colspan="2" align="center" valign="top"><input type="submit" name="Entrar" id="Entrar" value="Entrar"></td>
       </tr>
     </table>
   </form>

 

Alguém pode me ajudar nesse problemão???

Forte abraço p/ todos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

certifique-se de que o nome e senha(md5) estão cadastrados no banco e também se está tudo ok com a conexão

<?php 

$nome  = ( ! empty( $_POST[ 'nome' ] ) ) ? addslashes( $_POST[ 'nome' ] ) : null;
$senha = ( ! empty( $_POST[ 'senha' ] ) ) ? addslashes( $_POST[ 'senha' ] ) : null;

if( is_null( $senha ) )
{
echo '<p align="center"> Senha Incorreta, Por favor<BR><a href="javascript:history.back(1);">Tente Novamente</a></p>';	
}
else
{
$conn = mysql_connect( 'localhost', 'root', '' );
mysql_select_db( 'test', $conn );

$sql = sprintf( 'SELECT * FROM `login` WHERE `nome` = "%s" AND `senha` = MD5( "%s" )', $nome, $senha );
$query = mysql_query( $sql, $conn );

if( mysql_num_rows( $query ) > 0 )
{
	header( "location: logado.php" );
	exit;
}
else
{
	echo '<p align="center">Senha ou Nome invalido.<BR><a href="javascript:history.back(1);">Tente novamente.</a></p>';
}
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado pela ajuda amigo Carlos...

Mas não funcionou.. Fiz os ajustes, e mesmo assim retorna erro na linha

 if( mysql_num_rows( $query ) > 0 )

 

Esse problema não me deixar dormir, rsrs to com esse problema a mais de semanas e não consigo resolve-lo.

 

Valeu pela ajuda!

Compartilhar este post


Link para o post
Compartilhar em outros sites

de um echo no $sql e pegue ele e execute direto no phpmyadmin e veja se o resultado retornou um conjunto vazio.

 

Se sim significa que não existe tal nome e senha na tabela

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu utilizo o HeidiSQL, eu consigo visualizar todas as informações em meu banco de dados, nome e senha estão na tabela. Já cadastrei outros usuários p/ testar e mesmo assim nada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vitor, você é um ser iluminado! rsrsr :joia:

Realmente eu tinha colocado um tamanho incompatível.

 

Porém agora está apresentando erro na linha

header("location: logado.php");

 

Essa é a mensagem de erro:

Warning: Cannot modify header information - headers already sent by (output started at /home/content/18/6650618/html/teste/login.php:1) in /home/content/18/6650618/html/teste/login.php on line 14

 

O que pode ser? Esta declaro tudo certinho!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Dei uma pesquisada na net... Consegui compreender +ou-

 

Olhando o meu codigopodemos perceber qu eue tenho echo antes do header("Location: logado.php") por conta disso esta apresentando esse erro.

Pela minha pesquisa na net, teria que utilizar o ob_start()

 

Porém não faço ideia de como utiliza-lo. Ja olhei no manual do PHP e nada...

 

Se puderem me ajudar agradeço muito!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ferreira Felipe,

O ob_start(); deve ser colocado na primeira linha do código, mas geralmente eu evito dar saídas HTML através do echo, costumo fazer da seguinte forma:

<?php
if(0 == 1){
?>
O sistema está louco!
<?php
}else{
?>
O sistema está de buenas!
<?php
}
?>

 

Tenta aí no seu e veja se dá certo!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Grande Vitor,

Continua apresentando erro.

 

Tenteio de várias formas e mesmo assim continua apresentando o erro: Warning: Cannot modify header information - headers already sent by (output started at /home/content/18/6650618/html/teste/login.php:1) in /home/content/18/6650618/html/teste/login.php on line 14

 

Coloquei tb o ob_start(); no início do código e nada.

 

Já não sei mais o que pode ser esse erro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você precisa varificar se no arquivo conectar.php e login.php tem alguma linha em branco antes e depois de <?php ?>, no caso do echo que você falou não tem problema não, pois ele está dentro de uma condição, ou dá o echo ou redireciona

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caro amigo Carlos,

Verifiquei os dois arquivos, retirei ate os comentários dos mesmo. E nada. Continua apresentando o mesmo erro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O login.php e conectar.php são os únicos arquivos usados e não estão dentro de outro arquivo certo ?

 

Poste os dois exatamente como estão, incluido linhas em branco e tal.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Segue os códigos dos arquivos Carlos.

 

Código login.php

<?php 
// Iniciando a Sessão.
// session_start(); 
//conecta com o db
include ("conectar.php");
$nome= $_POST['nome'];
$senha = md5($_POST['senha']);
//faz a confirmação de nome e senha no db
$logar = mysql_query("SELECT * FROM login WHERE nome='".addslashes($nome)."' AND senha='".addslashes($senha)."'");
if (strlen($senha) < 1)
echo '<p align="center"> Senha Incorreta, Por favor<BR><a href="javascript:history.back(1);">Tente Novamente</a></p>';
elseif (mysql_num_rows($logar) > 0 ){
header("location: logado.php");
$_SESSION['usuario'] = $_POST['nome'];
}
else {
echo '<p align="center">Senha ou Nome invalido.<BR><a href="javascript:history.back(1);">Tente novamente.</a></p>';
}
?>

 

Código conectar.php

<?php
$host = "RETIRADO_POR_SEGURANÇA"; //endereço do banco de dados.
$user = "RETIRADO_POR_SEGURANÇA"; //usuário cadastrado no banco de dados.
$senha = "RETIRADO_POR_SEGURANÇA"; //senha do usuário.
$dbname = "RETIRADO_POR_SEGURANÇA"; //nome do banco de dados NÃO ALTERAR!
mysql_connect($host, $user, $senha) or die("Não foi possível conectar-se com o banco de dados"); //conecta ao banco de dados
mysql_select_db($dbname)or die("Não foi possível conectar-se com o banco de dados"); //seleciona o banco de dados
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente usando essa estrutura:

 

conectar.php

<?php
defined( 'HOST' )     or define( 'HOST',     'localhost' );
defined( 'USER' )     or define( 'USER',     'root' );
defined( 'PASSWORD' ) or define( 'PASSWORD', '' );
defined( 'DATABASE' ) or define( 'DATABASE', 'test' );
$conn = mysql_connect( HOST, USER, PASSWORD );
mysql_select_db( DATABASE, $conn );
?>

 

login.php

<?php 
if( $_SERVER[ 'REQUEST_METHOD' ] == 'POST' )
{
$nome  = ( ! empty( $_POST[ 'nome' ] ) ) ? addslashes( $_POST[ 'nome' ] ) : null;
$senha = ( ! empty( $_POST[ 'senha' ] ) ) ? addslashes( $_POST[ 'senha' ] ) : null;
if( is_null( $senha ) )
{
	echo '<p align="center"> Senha Incorreta, Por favor<BR><a href="javascript:history.back(1);">Tente Novamente</a></p>';  
}
else
{
	include( 'conectar.php' );
	$sql = sprintf( 'SELECT * FROM `login` WHERE `nome` = "%s" AND `senha` = MD5( "%s" )', $nome, $senha );
	$query = mysql_query( $sql, $conn );

	if( mysql_num_rows( $query ) > 0 )
	{
		session_start( );
		$_SESSION[ 'usuario' ] = $nome;
		header( "location: logado.php" );
		exit;
	}
	else
	{
		echo '<p align="center">Senha ou Nome invalido.<BR><a href="javascript:history.back(1);">Tente novamente.</a></p>';
	}
}
}
else
{
header( 'Location: index.php' );
exit;	
}
?>

 

index.php

<!DOCTYPE HTML>
<html>
 <head>
   <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
   <title>Tela de Login</title>
 </head>
 <body>
 <form action="login.php" method="post">
   <table width="778" height="196" align="center">
     <tr>
       <td width="407" height="56"><img src="img/logo.jpg" alt="" width="181" height="72" align="absmiddle"></td>
       <td width="76" valign="middle">Login:</td>
       <td width="281" valign="middle"><input name="nome" type="text" id="nome" size="15" maxlength="10" /></td>
     </tr>
     <tr>
       <td height="86" valign="middle"><h1 align="center">Controle . . . </h1></td>
       <td valign="top">Senha:</td>
       <td valign="top"><input name="senha" type="password" id="senha" size="15" maxlength="10" /></td>
     </tr>
     <tr>
       <td height="26"><h6> </h6></td>
       <td colspan="2" align="center" valign="top"><input type="submit" name="Entrar" id="Entrar" value="Entrar"></td>
     </tr>
   </table>
 </form>
 </body>
</html>

 

 

Testei aqui e funcionou normal. :joia:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Definitivamente não entendo o que pode ocorrer Carlos..

Localmente esse seu código funciona 100% como você mesmo disse. Porém em meu servidor não.

 

Um amigo disse que seria previlégios do banco de dados, porém o mesmo usuário eu senha eu acesso o MyAdmin, crio, excluo tabela, adiciono dados na tabela normalmente. Não sei o que pode ocorrer.

 

Erros agora depois com essa estrutura proposta por você Carlos:

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /home/content/18/6650618/html/teste/login.php:1) in /home/content/18/6650618/html/teste/login.php on line 18

 

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/content/18/6650618/html/teste/login.php:1) in /home/content/18/6650618/html/teste/login.php on line 18

 

Warning: Cannot modify header information - headers already sent by (output started at /home/content/18/6650618/html/teste/login.php:1) in /home/content/18/6650618/html/teste/login.php on line 20

 

Será mesmo o banco de dados? Conhece algum lugar free na web onde eu possa criar um banco de dados p/ testar?

 

Agradeço muito ajuda de todos nesse tópico, como sempre os membros do Imasters sempre são 10!!!

 

- - - EDIT - - -

Acabei de criar um novo banco de dados... E nada, ate mesmo com o novo banco de dados continua apresentando os erros a cima..

 

Agradeço muito a ajuda de todos!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Carlos...

Muito agradecido amigo... 100% resolvido.

Trocando a codificação resolvi o meu problema. Acredito ate que com o meu código inicial poderia acessar tb (não testei).

 

Mais uma vez, MUITO AGRADECIDO!!!

 

Abraço!

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.