vargas21 1 Denunciar post Postado Julho 2, 2015 Estou tentando fazer com que o usuário do meu site possa recuperar a senha de acesso em caso de esquecimento, porém, não está dando certo. Segue o cód: <?php $host = "******"; $user = "******"; $pass = "*******"; $banco = "********"; $conexao = mysql_connect($host, $user, $pass) or die(mysql_error()); mysql_select_db($banco) or die(mysql_error()); ?> <!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>Recuperar Senha</title> </head> <body> <?php //Criando Variaveis// if(isset($_POST['enviar'])) { $email = $_POST['email']; //Buscar dados no SQL// $sql=mysql_query("SELECT * FROM usuarios WHERE email = '$email'"); $verifica=mysql_num_rows($sql); if($verifica == 1){ $emailsql = $dados['email']; $senha = $dados['senha']; $nome = $dados['nome']; } //Se os E-mails Forem Iguais// if ($email == $emailsql) { $mensagem = "Presado sr. ".$nome.",<br><br>"; $mensagem .= "Esta mensagem foi enviada ao senhor pois solicitou a recuperação de seus dados de login em nosso site. Abaixo seguem seus dados:"; $mensagem .= "<p>Login: ".$nome."<br>"; $mensagem .= "Senha: ".$senha."</p>"; $headers = "MIME-Version: 1.0\r\n"; $headers .= "Content-type: text/html; charset=iso-8859-1\r\n"; mail($email, "Recuperação de Senha", $mensagem, $headers); echo "<b>Seus dados foram enviados com sucesso!</b>"; } //Caso os E-mails não são Iguais// else{ echo "<b>Os dados informados nao sao compativeis com os cadastrados! Tente novamente!</b>"; } } ?> <form action="<?php $PHP_SELF ?>" method="post" name="recupera"> <h1> <div align="center">Recuperar de Senha</div> </h1> <p align="center">Preencha corretamente os dados abaixo para que sua senha seja encaminhada ao seu e-mail:</p> <div align="center"><br /> E-mail: <input type="text" name="email" size="30"><br /><br /> <input type="submit" name="enviar" value="Recuperar!"></div> </form> </body> </html> Aparece a mensagem: Os dados informados nao sao compativeis com os cadastrados! Tente novamente! Quando eu entro com o email para procurar. Alguém poderia me dizer oq fazer? Obrigado Compartilhar este post Link para o post Compartilhar em outros sites
wolfphw 60 Denunciar post Postado Julho 2, 2015 Primeiro.. isso aqui vc não precisa fazer if ($email == $emailsql) { pois vc já verificou se existe o E-mail if($verifica == 1){ Então pode juntar tudo.. Disso.. if($verifica == 1){ $emailsql = $dados['email']; $senha = $dados['senha']; $nome = $dados['nome']; } //Se os E-mails Forem Iguais// if ($email == $emailsql) { $mensagem = "Presado sr. ".$nome.",<br><br>"; $mensagem .= "Esta mensagem foi enviada ao senhor pois solicitou a recuperação de seus dados de login em nosso site. Abaixo seguem seus dados:"; $mensagem .= "<p>Login: ".$nome."<br>"; $mensagem .= "Senha: ".$senha."</p>"; $headers = "MIME-Version: 1.0\r\n"; $headers .= "Content-type: text/html; charset=iso-8859-1\r\n"; mail($email, "Recuperação de Senha", $mensagem, $headers); echo "<b>Seus dados foram enviados com sucesso!</b>"; } else { echo "<b>Os dados informados nao sao compativeis com os cadastrados! Tente novamente!</b>"; } para isso if($verifica == 1){ $emailsql = $dados['email']; $senha = $dados['senha']; $nome = $dados['nome']; $mensagem = "Presado sr. ".$nome.",<br><br>"; $mensagem .= "Esta mensagem foi enviada ao senhor pois solicitou a recuperação de seus dados de login em nosso site. Abaixo seguem seus dados:"; $mensagem .= "<p>Login: ".$nome."<br>"; $mensagem .= "Senha: ".$senha."</p>"; $headers = "MIME-Version: 1.0\r\n"; $headers .= "Content-type: text/html; charset=iso-8859-1\r\n"; mail($email, "Recuperação de Senha", $mensagem, $headers); echo "<b>Seus dados foram enviados com sucesso!</b>"; } else { echo "<b>Os dados informados nao sao compativeis com os cadastrados! Tente novamente!</b>"; } Imprime no final as variaveis $emailsql $senha $nome e vê se ele está trazendo algo.. que pode ser alguma coisa na sua consulta, verifica se o email esta sendo salvo sem nenhum espaço no banco, que tudo isso influencia . . . } else { echo "<b>Os dados informados nao sao compativeis com os cadastrados! Tente novamente!</b>"; } } echo "emailsql:".$emailsql."<br>"; echo "senha:".$senha."<br>"; echo "nome:".$nome."<br>"; Compartilhar este post Link para o post Compartilhar em outros sites
Filipe Tagliacozzi 1 Denunciar post Postado Julho 3, 2015 Outra coisa, na tabela do banco de dados, caso seu campo de email não seja UNIQUE, pode ser que exista mais de 1 email igual, portanto, essa condicional: if($verifica == 1){ // se existir 1 coluna, nem menos nem mais . . . } no caso de haver mais de um email igual no banco seria falsa e entraria no else: } else { echo "<b>Os dados informados nao sao compativeis com os cadastrados! Tente novamente!</b>"; } Compartilhar este post Link para o post Compartilhar em outros sites
vargas21 1 Denunciar post Postado Julho 4, 2015 Primeiro.. isso aqui você não precisa fazer if ($email == $emailsql) { pois você já verificou se existe o E-mail if($verifica == 1){ Então pode juntar tudo.. Disso.. if($verifica == 1){ $emailsql = $dados['email']; $senha = $dados['senha']; $nome = $dados['nome']; } //Se os E-mails Forem Iguais// if ($email == $emailsql) { $mensagem = "Presado sr. ".$nome.",<br><br>"; $mensagem .= "Esta mensagem foi enviada ao senhor pois solicitou a recuperação de seus dados de login em nosso site. Abaixo seguem seus dados:"; $mensagem .= "<p>Login: ".$nome."<br>"; $mensagem .= "Senha: ".$senha."</p>"; $headers = "MIME-Version: 1.0\r\n"; $headers .= "Content-type: text/html; charset=iso-8859-1\r\n"; mail($email, "Recuperação de Senha", $mensagem, $headers); echo "<b>Seus dados foram enviados com sucesso!</b>"; } else { echo "<b>Os dados informados nao sao compativeis com os cadastrados! Tente novamente!</b>"; } para isso if($verifica == 1){ $emailsql = $dados['email']; $senha = $dados['senha']; $nome = $dados['nome']; $mensagem = "Presado sr. ".$nome.",<br><br>"; $mensagem .= "Esta mensagem foi enviada ao senhor pois solicitou a recuperação de seus dados de login em nosso site. Abaixo seguem seus dados:"; $mensagem .= "<p>Login: ".$nome."<br>"; $mensagem .= "Senha: ".$senha."</p>"; $headers = "MIME-Version: 1.0\r\n"; $headers .= "Content-type: text/html; charset=iso-8859-1\r\n"; mail($email, "Recuperação de Senha", $mensagem, $headers); echo "<b>Seus dados foram enviados com sucesso!</b>"; } else { echo "<b>Os dados informados nao sao compativeis com os cadastrados! Tente novamente!</b>"; } Imprime no final as variaveis $emailsql $senha $nome e vê se ele está trazendo algo.. que pode ser alguma coisa na sua consulta, verifica se o email esta sendo salvo sem nenhum espaço no banco, que tudo isso influencia . . . } else { echo "<b>Os dados informados nao sao compativeis com os cadastrados! Tente novamente!</b>"; } } echo "emailsql:".$emailsql."<br>"; echo "senha:".$senha."<br>"; echo "nome:".$nome."<br>"; Agora não dá mais o erro de encontrar o email. Funciona perfeitamente, porém, o email não é enviado. Pode ser alguma coisa com o init.php? Compartilhar este post Link para o post Compartilhar em outros sites