rodrigo silva 4045 Postado Julho 18, 2015 Denunciar Share Postado Julho 18, 2015 (editado) Código retirado do livro "PHP para iniciante" do autor Rafael S. Almeida Estou com problemas em autenticar usuários cadastrados no banco de dados. A conexão com o banco retorna OK, conectado. Porém, mesmo com o usuário e senha cadastrado no banco, sempre retorna erro (não cadastrado) Alguém percebe algo de errado? <?php //Faz a conexão com o nosso Banco de Dados MySql require_once("conectar.php"); //Recebe os dados do formulário index.php, que são repassados via método POST $aut_usuario = mysql_real_escape_string($_POST['index_usuario']); $aut_senha = sha1($_POST['index_senha']); //Consulta se os dados digitados estão gravados na tabela usuario_adm $sql = mysql_query("SELECT usu_id, usu_nome FROM usuario_adm WHERE usu_nome = '$aut_usuario' AND usu_senha = sha1('$aut_senha') ") or die ("ERRO NO COMANDO SQL"); //Se os dados estiverem gravados no banco a variável $linha receberá 1 $linhas = mysql_num_rows($sql); echo 'O número de linhas é ' .$linhas; //a variável $linhas retorna 0 echo '<br/>'; echo 'A variável $sql é ' .$sql; //a variável $sql retorna Resource #5 //Se os dados estiverem em branco ou se foram digitados errado e não existem no banco, a variável $linha receberá zero (0) if ($linhas == 0) { echo '<center><img src = "/ipil/imagens/logo_ipil.jpg" width = "1000" height = "180"></center>'; echo ' Usuário ou Senha inválidos, tente novamente!!! '; echo '<a href = "index.php">Voltar</a><br>'; } else { //Caso os dados estejam digitados corretamente e foram gravados no banco, buscará esses dados na tabela $aut_id = mysql_result($sql,0,"usu_id"); $aut_nome = mysql_result($sql,0,"usu_nome"); //Inicializar a sessão session_start(); //Gravar as variáveis que iremos utilizar na nossa sessão $_SESSION['sessao_id'] = $aut_id; $_SESSION['sessao_nome'] = $aut_nome; //Abrirá o script que contém a página com o menu de opções Header ("Location: menu_opcoes_geral.php"); } ?> Editado Julho 19, 2015 por rodrigo silva 4045 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 lowys Postado Julho 18, 2015 Denunciar Share Postado Julho 18, 2015 Oi! A senha tá sendo criptografada duas vezes! É isso mesmo? A senha q está no banco de dados tb foi criptografada duas vezes? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 rodrigo silva 4045 Postado Julho 19, 2015 Autor Denunciar Share Postado Julho 19, 2015 Olá !! Segui a dica e funcionou. O livro tem uma errata na página 423 e 424. Muito obrigado pela ajuda. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
rodrigo silva 4045
Código retirado do livro "PHP para iniciante" do autor Rafael S. Almeida
Estou com problemas em autenticar usuários cadastrados no banco de dados.
A conexão com o banco retorna OK, conectado.
Porém, mesmo com o usuário e senha cadastrado no banco, sempre retorna erro (não cadastrado)
Alguém percebe algo de errado?
<?php
//Faz a conexão com o nosso Banco de Dados MySql
require_once("conectar.php");
//Recebe os dados do formulário index.php, que são repassados via método POST
$aut_usuario = mysql_real_escape_string($_POST['index_usuario']);
$aut_senha = sha1($_POST['index_senha']);
//Consulta se os dados digitados estão gravados na tabela usuario_adm
$sql = mysql_query("SELECT usu_id, usu_nome FROM usuario_adm WHERE
usu_nome = '$aut_usuario' AND usu_senha = sha1('$aut_senha') ") or die ("ERRO NO COMANDO SQL");
//Se os dados estiverem gravados no banco a variável $linha receberá 1
$linhas = mysql_num_rows($sql);
echo 'O número de linhas é ' .$linhas; //a variável $linhas retorna 0
echo '<br/>';
echo 'A variável $sql é ' .$sql; //a variável $sql retorna Resource #5
//Se os dados estiverem em branco ou se foram digitados errado e não existem no banco, a variável $linha receberá zero (0)
if ($linhas == 0)
{
echo '<center><img src = "/ipil/imagens/logo_ipil.jpg" width = "1000" height = "180"></center>';
echo ' Usuário ou Senha inválidos, tente novamente!!! ';
echo '<a href = "index.php">Voltar</a><br>';
}
else
{
//Caso os dados estejam digitados corretamente e foram gravados no banco, buscará esses dados na tabela
$aut_id = mysql_result($sql,0,"usu_id");
$aut_nome = mysql_result($sql,0,"usu_nome");
//Inicializar a sessão
session_start();
//Gravar as variáveis que iremos utilizar na nossa sessão
$_SESSION['sessao_id'] = $aut_id;
$_SESSION['sessao_nome'] = $aut_nome;
//Abrirá o script que contém a página com o menu de opções
Header ("Location: menu_opcoes_geral.php");
}
?>
Editado por rodrigo silva 4045Link para o comentário
Compartilhar em outros sites
2 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.