Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Bom dia amigos, estou com um código que faz a recuperação de senha do usuário, estou tentando fazer que quando o usuário coloca o e-mail dele, o script faça primeiro uma busca no banco para saber se o e-mail existe, se existir, o código segue e envia uma senha redefinida para o e-mail do mesmo, caso não exista exiba uma mensagem de "email inexistente". O que acontece, até tentei de várias e várias maneiras mas todas sem sucesso, crio a condição, mas mesmo colocando um email errado e um correto o resultado é o mesmo, "email inexistente". Segue código:
<?php
include("config.php");
$cnx = mysql_connect($DB_SERVER, $DB_USER, $DB_PASS) or die("Could not connect: " . mysql_error());
mysql_select_db($DB_NAME, $cnx);
$email = $_POST["email"];
$consulta = mysql_query("SELECT email FROM cliente WHERE email = $email");
$dados = mysql_fetch_assoc($consulta);
if ($dados['email'] !== $email) {
echo "email não encontrado!";
} else{
function random_password( $length = 8 ) {
$chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()_-=+;:,.?";
$password = substr( str_shuffle( $chars ), 0, $length );
return $password;
}
$senha = random_password(8);
$novaSenha = $senha;
$senhaCodificada = hash('sha256', $senha);
$query = "UPDATE cliente SET senha = '".$senhaCodificada."' WHERE email = '".$email."'";
$texto = "Sua nova senha é:".$novaSenha;
$headers = "MIME-Version: 1.1\r\n";
$headers .= "Content-type: text/plain; charset=iso-8859-1\r\n";
$headers .= "From: contato.tecsat@gmail.com\r\n"; // remetente
$envio = mail($email, "Recuperação de Senha", $texto, $headers);
if($envio)
echo "Mensagem enviada com sucesso";
else
echo "A mensagem não pode ser enviada";
}
//
?>
Já tentei:
$consulta = mysql_query("SELECT id FROM cliente WHERE email = $email");
$consulta = mysql_query("SELECT email FROM cliente");
$consulta = mysql_query("SELECT id FROM cliente WHERE email = $email ");
entre outras tentativas, também já tentei com mysql_num_rows mas sem sucesso também.
Se alguém puder me ajudar fico muito agradecido.
até mais!
Acho que sua consulta está com erro porque você não adicionou aspas em volta da variável $email, e como é uma string, é obrigatório:
Habilite as mensagens de erro/aviso do PHP adicionando estas duas linhas no início do arquivo: