Martinsrj Postado Março 13, 2009 Denunciar Share Postado Março 13, 2009 Olá pessoal, beleza?Estou fazendo um sisteminha para teste com login, autenticação e logout, porem não ocorre a autenticação. Sempre cai na mensagem de erro:O login não foi realizado porque os dados digitados são INVALIDOS!Aqui vai o codigo da pagina principal:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Untitled Document</title> </head> <body> <p align="center"><font face="Arial">Digite seus dados de identificação para acessar o sistema:</font></p> <br> <table width="100%" border="0"> <tr> <th width="100%" align="center"><marquee><font face="Arial, Helvetica, sans-serif">Pagina de autenticação</font> </marquee></th> </tr> </table> <br> <form method="POST" action="login.php"> <p align="center"><font face="arial">Usuário:</font> <input type="text" name="usuario" size="20"></p> <p align="center"><font face="arial">Senha:</font> <input type="password" name="senha" size="20"></p> <p align="center"><input type="submit" value="Enviar" name="enviar"></p> </form> <br> <br> <br> <br /> <br /> <br /> <hr> <?php echo date('d/m/Y - H:i:s'); ?> </body> </html> Pagina do LOGIN: <?php $usuario =$_POST["usuario"]; $senha =$_POST["senha"]; // echo $usuario; $servidor = 'localhost'; $usuario = 'root'; $senha = 'elohim'; $banco = 'bd_teste'; $link = mysql_connect($servidor, $usuario, $senha) or die ('Não foi possivel conectar ao Banco MTI: '.mysql_error()); $select = mysql_select_db($banco); $result = mysql_query("SELECT * from usuarios_autorizados where usuario ='$usuario' and senha='$senha'"); $linhas = mysql_num_rows($result); if($linhas==0) { echo "<html><body>"; echo "<p align=\"center\">O login não foi realizado porque os dados digitados são INVALIDOS!</p>"; echo "<p align=\"center\"><a href=\"index.php\">Voltar</a></p>"; echo "</html></body>"; } else { session_start(); $_SESSION['nome_usuario'] = $usuario; $_SESSION['senha_usuario'] = $senha; // direciona para a página inicial dos usuários cadastros header("Location: inserir.php"); } mysql_close($conexao); ?>Desde já agradeço pela ajuda, abraços. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Março 13, 2009 Denunciar Share Postado Março 13, 2009 Troca isso:$result = mysql_query("SELECT * from usuarios_autorizados where usuario ='$usuario' and senha='$senha'"); $linhas = mysql_num_rows($result); Por isso: $result = mysql_query("SELECT * from usuarios_autorizados where usuario ='$usuario' and senha='$senha'")OR DIE(mysql_error()); $linhas = mysql_num_rows($result); echo "total de usuário achados $linhas"; Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Martinsrj Postado Março 13, 2009 Autor Denunciar Share Postado Março 13, 2009 Troca isso:$result = mysql_query("SELECT * from usuarios_autorizados where usuario ='$usuario' and senha='$senha'"); $linhas = mysql_num_rows($result); Por isso: $result = mysql_query("SELECT * from usuarios_autorizados where usuario ='$usuario' and senha='$senha'")OR DIE(mysql_error()); $linhas = mysql_num_rows($result); echo "total de usuário achados $linhas";Olá ESerra!Coloquei o codigo que você mencionou, porem ele retornou: total de usuário achados 0Porem afirmo que existe registro no banco na tabela usuarios_autorizados.usuarios_autorizados CREATE TABLE `usuarios_autorizados` ( `usuario` varchar(30) NOT NULL, `senha` varchar(30) NOT NULL, PRIMARY KEY (`usuario`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 Desde já agradeço pela ajuda! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Março 13, 2009 Denunciar Share Postado Março 13, 2009 Vai debugando o teu código, dá echo nas variáveis $usuario/$senha, veja se é esperado Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Martinsrj Postado Março 13, 2009 Autor Denunciar Share Postado Março 13, 2009 Vai debugando o teu código, dá echo nas variáveis $usuario/$senha, veja se é esperadoOlá Eserra!Eu instalei no meu Adobe Dreamweaver CS3 o phpdebuggere ele informa que o erro está na linha 2:- $usuario = $_POST["usuario"];Error type: E_NOTICEMessage 2: Undefined index: usuarioSegue novamente o meu codigo:<?php $usuario =$_POST["usuario"]; $senha =$_POST["senha"]; // echo $usuario; $servidor = 'localhost'; $usuario = 'root'; $senha = 'elohim'; $banco = 'bd_mti'; $link = mysql_connect($servidor, $usuario, $senha) or die ('Não foi possivel conectar ao Banco MTI: '.mysql_error()); $select = mysql_select_db($banco); $result = mysql_query("SELECT * from usuarios_autorizados where usuario ='" .$usuario. "' and senha='" .$senha."' "); $linhas = mysql_num_rows($result); if($linhas==0) { echo "<html><body>"; echo "<p align=\"center\">O login não foi realizado porque os dados digitados são INVALIDOS!</p>"; echo "<p align=\"center\"><a href=\"index.php\">Voltar</a></p>"; echo "</html></body>"; } else { session_start(); $_SESSION['nome_usuario'] = $usuario; $_SESSION['senha_usuario'] = $senha; // direciona para a página inicial dos usuários cadastros header("Location: inserir.php"); } mysql_close($conexao); ?> Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 itibere Postado Março 13, 2009 Denunciar Share Postado Março 13, 2009 veja abaixo:<?php $usuario =$_POST["usuario"]; $senha =$_POST["senha"]; //Aqui você cria uma variável $senha que guarda a senha digitada pelo usuário no form // echo $usuario; $servidor = 'localhost'; $usuario = 'root'; $senha = 'elohim'; //Aqui você declara de novo uma variável senha que guarda a senha o usuário do bando de dados $banco = 'bd_mti'; ...... $result = mysql_query("SELECT * from usuarios_autorizados where usuario ='" .$usuario. "' and senha='" .$senha."' "); // Aqui você usa a variável $senha. Pergunta qual valor você acha que ta na variável, Resposta: A Senha do Banco que foi declarada por ultimo.Conserta isso que deve resolve. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Martinsrj Postado Março 13, 2009 Autor Denunciar Share Postado Março 13, 2009 (editado) veja abaixo:<?php $usuario =$_POST["usuario"]; $senha =$_POST["senha"]; //Aqui você cria uma variável $senha que guarda a senha digitada pelo usuário no form // echo $usuario; $servidor = 'localhost'; $usuario = 'root'; $senha = 'elohim'; //Aqui você declara de novo uma variável senha que guarda a senha o usuário do bando de dados $banco = 'bd_mti'; ...... $result = mysql_query("SELECT * from usuarios_autorizados where usuario ='" .$usuario. "' and senha='" .$senha."' "); // Aqui você usa a variável $senha. Pergunta qual valor você acha que ta na variável, Resposta: A Senha do Banco que foi declarada por ultimo. Conserta isso que deve resolve. Conforme a sua indicação, realizei a modificação. Debugguei e dei um echo $linha onde imprimiu na tela: 1 o codigo ficou assim: <?php // $usuario =$_POST["usuario"]; // $senha =$_POST["senha"]; $usuario_recupera = $_POST['usuario']; $senha_recupera = $_POST['senha']; // echo $usuario; $servidor = 'localhost'; $usuario = 'root'; $senha = 'elohim'; $banco = 'bd_mti'; $link = mysql_connect($servidor, $usuario, $senha) or die ('Não foi possivel conectar ao Banco MTI: '.mysql_error()); $select = mysql_select_db($banco); $result = mysql_query("SELECT * from usuarios_autorizados where usuario ='" .$usuario_recupera. "' and senha='" .$senha_recupera."' "); $linhas = mysql_num_rows($result); [b]echo $linhas;[/b] /* if($linhas==0) { echo "<html><body>"; echo "<p align=\"center\">O login não foi realizado porque os dados digitados são INVALIDOS!</p>"; echo "<p align=\"center\"><a href=\"index.php\">Voltar</a></p>"; echo "</html></body>"; } else { session_start(); $_SESSION['nome_usuario'] = $usuario_recupera; $_SESSION['senha_usuario'] = $senha_recupera; // direciona para a página inicial dos usuários cadastros header("Location: inserir.php"); } */ mysql_close($conexao); ?> Porèm agora ele me direciona para a pagina: inserir.php com a mensagem na tela: Você não efetuou o LOGIN!!! Eu possuo uma pagina onde valida a session: <?php if(ISSET($_SESSION["nome_usuario"])) $nome_usuario = $_SESSION["nome_usuario"]; if(ISSET($_SESSION["senha_usuario"])) $senha_usuario = $_SESSION["senha_usuario"]; if(!(empty($nome_usuario) or empty($senha_usuario))) { $servidor = 'localhost'; $usuario = 'root'; $senha = 'elohim'; $banco = 'bd_mti'; $link = mysql_connect($servidor, $usuario, $senha) or die ('Não foi possivel conectar ao Banco MTI: '.mysql_error()); $select = mysql_select_db($banco); $result = mysql_query("SELECT * from usuarios_autorizados where usuario='$usuario' and senha = '$senha'"); if(mysql_num_rows($result)==0) { unset ($_SESSION['nome_usuario']); unset ($_SESSION['senha_usuario']); echo "Atenção, você não efetuou o <b>LOGIN!!!</b>!!!"; exit; } } else { echo "Você não efetuou o <b>LOGIN</b>!!!"; exit; } mysql_close($conexao); ?> Mas desde obrigado aí pela ajuda. A pagina de Valida session: <?php if(ISSET($_SESSION["nome_usuario"])) $nome_usuario = $_SESSION["nome_usuario"]; if(ISSET($_SESSION["senha_usuario"])) $senha_usuario = $_SESSION["senha_usuario"]; if(!(empty($nome_usuario) or empty($senha_usuario))) { $servidor = 'localhost'; $usuario = 'root'; $senha = 'elohim'; $banco = 'bd_mti'; $link = mysql_connect($servidor, $usuario, $senha) or die ('Não foi possivel conectar ao Banco MTI: '.mysql_error()); $select = mysql_select_db($banco); $result = mysql_query("SELECT * from usuarios_autorizados where usuario='$usuario' and senha = '$senha'"); if(mysql_num_rows($result)==0) { unset ($_SESSION['nome_usuario']); unset ($_SESSION['senha_usuario']); echo "Atenção, você não efetuou o <b>LOGIN!!!</b>!!!"; exit; } } else { echo "Você não efetuou o <b>LOGIN</b>!!!"; exit; } mysql_close($conexao); ?> Editado Março 13, 2009 por Martinsrj Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 itibere Postado Março 13, 2009 Denunciar Share Postado Março 13, 2009 Repare:$servidor = 'localhost'; $usuario = 'root'; $senha = 'elohim'; $banco = 'bd_mti'; $link = mysql_connect($servidor, $usuario, $senha) or die ('Não foi possivel conectar ao Banco MTI: '.mysql_error()); $select = mysql_select_db($banco); $result = mysql_query("SELECT * from usuarios_autorizados where usuario='$usuario' and senha = '$senha'"); if(mysql_num_rows($result)==0)Mesmo erro anterior, você ta passando a senha do banco ao invés da senha do usuário. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Martinsrj Postado Março 13, 2009 Autor Denunciar Share Postado Março 13, 2009 Repare:$servidor = 'localhost'; $usuario = 'root'; $senha = 'elohim'; $banco = 'bd_mti'; $link = mysql_connect($servidor, $usuario, $senha) or die ('Não foi possivel conectar ao Banco MTI: '.mysql_error()); $select = mysql_select_db($banco); $result = mysql_query("SELECT * from usuarios_autorizados where usuario='$usuario' and senha = '$senha'"); if(mysql_num_rows($result)==0) Mesmo erro anterior, você ta passando a senha do banco ao invés da senha do usuário. Olá Itibere! Eu cheguei a realizar no codigo valida session o reparo, porem a situação persiste. <?php if(ISSET($_SESSION["nome_usuario"])) $nome_usuario = $_SESSION["nome_usuario"]; if(ISSET($_SESSION["senha_usuario"])) $senha_usuario = $_SESSION["senha_usuario"]; if(!(empty($nome_usuario) or empty($senha_usuario))) { $servidor = 'localhost'; $usuario = 'root'; $senha = 'elohim'; $banco = 'bd_mti'; $link = mysql_connect($servidor, $usuario, $senha) or die ('Não foi possivel conectar ao Banco MTI: '.mysql_error()); $select = mysql_select_db($banco); $result = mysql_query("SELECT * from usuarios_autorizados where usuario ='" .$nome_usuario. "' and senha='" .$senha_usuario."' "); if(mysql_num_rows($result)==0) { unset ($_SESSION['nome_usuario']); unset ($_SESSION['senha_usuario']); echo "Atenção, você não efetuou o <b>LOGIN!!!</b>"; exit; } } else { echo "Você não efetuou o <b>LOGIN!!!"; exit; } mysql_close($conexao); ?> Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 itibere Postado Março 13, 2009 Denunciar Share Postado Março 13, 2009 depois de:<?php if(ISSET($_SESSION["nome_usuario"])) $nome_usuario = $_SESSION["nome_usuario"]; if(ISSET($_SESSION["senha_usuario"])) $senha_usuario = $_SESSION["senha_usuario" //DE UM ECHO AQUI: echo $nome_usuario."<br>"; echo $senha_usuario; Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Martinsrj Postado Março 13, 2009 Autor Denunciar Share Postado Março 13, 2009 depois de:<?php if(ISSET($_SESSION["nome_usuario"])) $nome_usuario = $_SESSION["nome_usuario"]; if(ISSET($_SESSION["senha_usuario"])) $senha_usuario = $_SESSION["senha_usuario" //DE UM ECHO AQUI: echo $nome_usuario."<br>"; echo $senha_usuario; Coloquei dessa forma: <?php if(ISSET($_SESSION['nome_usuario'])) $nome_usuario = $_SESSION['nome_usuario']; if(ISSET($_SESSION['senha_usuario'])) $senha_usuario = $_SESSION['senha_usuario']; echo $nome_usuario."<br>"; echo $senha_usuario; if(!(empty($nome_usuario) or empty($senha_usuario))) { $servidor = 'localhost'; $usuario = 'root'; $senha = 'elohim'; $banco = 'bd_mti'; $link = mysql_connect($servidor, $usuario, $senha) or die ('Não foi possivel conectar ao Banco MTI: '.mysql_error()); $select = mysql_select_db($banco); $result = mysql_query("SELECT * from usuarios_autorizados where usuario ='" .$nome_usuario. "' and senha='" .$senha_usuario."' "); if(mysql_num_rows($result)==0)porem na pagina aparece tudo em branco. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 itibere Postado Março 13, 2009 Denunciar Share Postado Março 13, 2009 (editado) Cara quando uma pagina toda em branco aparece, nomaumente e erro de parcer(sintaxe errada, ou erro de digitação),. tente o seguinte:1. comete as linha do echo que passei, se resolver veja que posso ter digitado algo errado, ou então tire o "<br>" que coloquei.2. se tiver algum header transforme em um comentário, pois você não posse dar nenhuma saída para htm, antes de um header, e isso pode esta acontecendo,3. por fim coloque:<?php error_reporting(E_ERROR | E_WARING | E_PARSE); ini_set("display_errors",on); ...isso vai fazer com que o php escreva os erro e avisos na tela, mas lembre-se de comentar essas linhas quando colocar o aplicativo em produção. Editado Março 13, 2009 por itibere Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Martinsrj
Olá pessoal, beleza?
Estou fazendo um sisteminha para teste com login, autenticação e logout, porem não ocorre a autenticação. Sempre cai na mensagem de erro:
O login não foi realizado porque os dados digitados são INVALIDOS!
Aqui vai o codigo da pagina principal:
Pagina do LOGIN:Desde já agradeço pela ajuda, abraços.
Link para o comentário
Compartilhar em outros sites
11 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.