Ir para conteúdo
Fórum Script Brasil
  • 0

smsoousa

Pergunta

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!

Editado por smsoousa
Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Olá Denis, primeiramente obrigado. Tentei das duas formas, mas o código ainda continua enviando o email para ambos, email cadastrado e não cadastrado, por exemplo, meu usuario cadastrado no banco esta com o email: usuario@teste.com, o certo é quando eu colocar esse email e solicitar a recuperação, o código envia, mas se eu colocar estranho@teste.com o código deveria rejeitar dizendo que não há registro desse e-mail no banco. Mas nesse caso está enviando para ambos

eu mudei

$consulta = mysql_query("SELECT email FROM cliente WHERE email = $email");

para

$consulta = mysql_query("SELECT email FROM cliente");

 

ai já me dá a mensagem de erro: "e-mail não encontrado". Mas o erro aparece para qualquer e-mail que eu coloque, tanto o correto como o incorreto. 

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...