Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá!
No sistema de login que estou fazendo, ele verifica se os dados informados (e-mail e senha) estão corretos, mas, mesmo estando certo ele está mostrando a mensagem de erro, que informa que os dados não estão corretos..
Aqui está o código; -- O código é de um outro fórum, peguei ele para estudar --
<!DOCTYPE HTML>
<html lang="br" class="no-js">
<head>
<meta charset="utf-8">
</head>
<body>
<div id="conteudo">
<h1>Verificando Informações</h1>
<div class="borda"></div>
<!-- Recebendo e gravando os dados -->
<?php
include "conexao.php";$recebeEmail = filter_input(INPUT_POST, 'email', FILTER_SANITIZE_SPECIAL_CHARS);
$confereEmail = filter_input(INPUT_POST, 'email', FILTER_SANITIZE_MAGIC_QUOTES);
$recebeSenha = filter_input(INPUT_POST, 'senha', FILTER_SANITIZE_SPECIAL_CHARS);
//Nesse if, faço uma conferência em relação à senha informada. Se não for informada nenhuma, retorno a mensagem para que o usuário informe algo!
if ($recebeSenha == NULL ) {
echo "<p>A senha precisa ser informada!";
echo "<p><a href='javascript:history.back();'>Voltar</a></p>";
return false;
}
//Aqui faço a segunda parte da verificação: vejo se no nome de usuário foi utilizado algum caractere especial
//Isso serve para evitar uma possível invasão sql no banco de dados, possibilitando assim a proteção e integridade dos dados
//Nesse caso, eu comparo os nomes. Se forem iguais, após passarem pelos filtros, eu inicio a criptografia. Se não forem, peço que volte à página anterior
else if ($confereEmail != $recebeEmail) {
echo "<p>Você informou o seguinte e-mail: <strong>$recebeEmail</strong> .</p>";
echo "<p>Por favor, não utilize caracteres especiais (tais como aspas simples ou duplas, assim como barras!) no campo <strong>Nome de Usuário</strong>.</p>";
echo "<p><a href='javascript:history.back();'>Volte</a> para a página anterior e tente novamente! Obrigado!</p>";
return false;
} else {
//Aqui vamos criar a função que vai criptografar os dados.
//Serão necessários criptografar apenas o endereço de e-mail e a senha informada
//Função para criptografar a senha
function criptoSenha($criptoSenha){
return sha1(md5($criptoSenha));
}
//Aqui realizo a criptografia da senha informada do usuário
$criptoSenha = criptoSenha(filter_input(INPUT_POST, 'senha', FILTER_SANITIZE_SPECIAL_CHARS));
/*
Agora vamos consultar no banco de dados para ver se existe realmente esse cadastro
Vamos verificar ambos os dados: Nome de Usuário e Senha e ainda se o campo "ATIVO" está setado como SIM
Penso eu que, ao invés de simplesmente DELETAR um USUÁRIO ou DELETAR QUALQUER INFORMAÇÃO GRAVADA NO BANCO é tiro no pé.
Vez ou outra, pode ser que seja necessária rever a informação ou a ação, e se tivermos apagado os dados, não temos muito o que fazer.
Lembre-se sempre: o usuário quer uma coisa agora, e outra daqui a 10 minutos. Então, preserve-se da melhor maneira possível.
Prefiro sempre trabalhar com a hipótese de ATIVO, EXIBIR, LIBERAR algo, para poder mudar simplesmente de SIM P/ NÃO e vice-versa, do que deletar a informação.
Posso até IMPRIMIR no botão "Deseja deletar a informação"? mas nunca, realmente nunca, apagar determinada linha ou informação do banco.
*/
$consultaInformacoes = mysql_query("SELECT * FROM fsusr WHERE clSenha = '$criptoSenha' AND clEmail = '$recebeEmail'") or die (mysql_error());
$verificaInformacoes = mysql_num_rows($consultaInformacoes);
//Aqui vou verificar se houve resultado positivo na pesquisa
if($verificaInformacoes == 1){
//Aqui eu vou setar os cookies para gravar os dados de acesso do usuário
setcookie ("login", $recebeEmail, (time()+60*60*24*30 ));
setcookie ("senha", $criptoSenha, (time()+60*60*24*30 ));
//header ("Location: conteudoExclusivo.php");
echo "<p>Os dados informados estão corretos!</p>
<p>Por favor, aguarde alguns segundos. Estamos processando a sua entrada!</p>
<p>Obrigado!</p>";
$conteudoExclusivo = "index.html";
echo "<meta http-equiv=\"refresh\" content=\"3;URL=".$conteudoExclusivo."\">";
} else {
echo "<p>Nome de Usuário ou Senha informada não confere. Por favor, <a href='javascript:history.back();'>volte</a> e tente novamente!</p>";
}
}
?>
</div>
</body>
</html>Sim Kinho, está!
Aqui está a página que faz o cadastro do usuário;
<!DOCTYPE HTML><html lang="br" class="no-js"> <head> <meta charset="utf-8"> <link href="styLogin.css" rel="stylesheet" /> </head> <body> <div id="conteudo"></div> <div class="borda"></div> <!-- Recebendo e gravando os dados --> <?php include "conexao.php"; $urlAcesso = "index.html"; $recebeSeuNome = filter_input(INPUT_POST, 'nome', FILTER_SANITIZE_SPECIAL_CHARS); $confereSeuNome = filter_input(INPUT_POST, 'nome', FILTER_SANITIZE_MAGIC_QUOTES); $recebeEmail = filter_input(INPUT_POST, 'email', FILTER_VALIDATE_EMAIL); $recebeSenha = filter_input(INPUT_POST, 'senha', FILTER_SANITIZE_SPECIAL_CHARS); if ($recebeEmail == NULL){ echo "<p>Retorne e digite um e-mail válido, por favor."; echo "<p><a href='javascript:history.back();'>Voltar</a></p>"; return false; } if ($recebeSenha == NULL){ echo "<p>Retorne e informe uma senha, por favor."; echo "<p><a href='javascript:history.back();'>Voltar</a></p>"; return false; } else if ($confereSeuNome != $recebeSeuNome) { echo "<p>Você informou o seu nome como: <strong>$confereSeuNome</strong>.</p>"; echo "<p>Por favor, não utilize caracteres especíais ; Aspas simples ou duplas, barras ; no campo <strong>seu nome</strong>.</p>"; echo "<p><a href='javascript:history.back();'>Voltar</a></p>"; return false; } else{ echo "<h3>Cadastrando informações em nosso banco de dados.</h3>"; function criptoSenha($criptoSenha){ return sha1(md5($criptoSenha)); } $criptoSenha = criptoSenha(filter_input(INPUT_POST, 'senha', FILTER_SANITIZE_SPECIAL_CHARS)); $consultaBanco = mysql_query("SELECT * FROM fsusr WHERE clEmail = '$recebeEmail'") or die (mysql_error()); $verificaBanco = mysql_num_rows($consultaBanco); if($verificaBanco == 1){ echo "<p><strong>$confereSeuNome</strong>, o endereço de e-mail <strong><em>$recebeEmail</em></strong> já está cadastrado em nosso banco de dados.</p>"; echo "<p><a href='javascript:history.back();'>Volte</a> para a página anterior e informe um novo e-mail.</p>"; return false; } $insereDados = mysql_query("INSERT INTO fsusr (clNome, clSenha, clEmail, clUsrAtivo) VALUES ('$confereSeuNome', '$criptoSenha', '$recebeEmail', 'Sim')") or die (mysql_error()); echo "<p>Seu cadastro foi efetuado com sucesso.</p>"; echo "<meta http-equiv=\"refresh\" content=\"5;URL=".$urlAcesso."\">"; } ?> </body></html>
Não consegui resolver ainda, alguém pode me ajudar?
Você tem apenas a pagina de login ?
a pagina de login que você postou estar lendo a senha criptografada usando a função Md5 e Sha1, verifica si a senha do banco de dados esta criptografada essas funções...
return sha1(md5($criptoSenha));