Ir ao conteúdo
  • Cadastre-se

Criar form de recuperação de senha em PHP


Sammy_Sam

Posts recomendados

Bom dia galera estou vasculhando na net uns codigos para eu colocar em meu site um form para o usuário recuperar a senha dele caso ele esqueça e dentre os q ja vi o q encontrei foi esse abaixo mais ele ta dando um erro na linhda a seguir:

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/jeantava/public_html/recuperalogin.php on line 9

E O COMANDO ESTÁ CORRETO vocês PODERIAM ME AUXILIAR NESSE SCRIPT SEGUE O SCRIPT ABAIXO.

Arquivo recuperalogin.php

<?php

include "config.php";

$email = $_POST['email'];

$query = mysql_query("SELECT * FROM usuarios WHERE user_email = '".$email."'");

if(mysql_num_rows($query) > 0){

$rs = mysql_fetch_array($query);

$senha_banco = $rs["senha"];

$msg = "<font face=\"Verdana\" size=\"2\">Recuperação de senha</font><br><br>";
$msg .="<font face=\"Verdana\" size=\"2\"><strong>Sua senha é: </strong>".$senha_banco."</font><br><br>";

$mensagem = $msg;
$destinatario = $email;
$assunto = "Recupeação de senha";
$headers = "Bcc: [email][email protected][/email]";

ini_set('sendmail_from', '[email protected]');
mail($destinatario, $assunto, $mensagem, $headers);

$erro = "Mensagem enviada com sucesso!";
}
else{
$erro = "Seu e-mail não consta em nossa base de dados!";
}

?>

Link para o comentário
Compartilhar em outros sites

  • Moderador

tenta fazer desta forma:

Lembrando que isso aqui nao foi testado.. e pode ter faltado alguma coisinha...

eu sempre aconselho a usar a classe phpmailer.. para enviar emails.. é melhor do que a funçao existente no php.


<?php
include "config.php";

$email = $_POST['email'];

$consulta = "SELECT email FROM usuarios WHERE user_email like '$email.' ");

$resposta = mysql_query($consulta);


if( mysql_num_rows($resposta) > 0 ){


$linha = mysql_fetch_array($resposta)
$emailRecuperado = $linha["user_email"];


$msg = "
<h2 style='font-family:Verdana;'>Recuperação de Senha</h2><br/>
<div style='Verdana; font-size:10pt;'>
Sua senha é: <span style='font-weight: bold;' $emailRecuperado</span>
</div>";

$mensagem = $msg;
$destinatario = $email;
$assunto = "Recupeação de senha";
$headers = "Bcc: [email protected]";

ini_set('sendmail_from', '[email protected]');
mail($destinatario, $assunto, $mensagem, $headers);

}else{
echo "Não Consta na base de dados";

}
?>

Link para o comentário
Compartilhar em outros sites

tenta fazer desta forma:

Lembrando que isso aqui nao foi testado.. e pode ter faltado alguma coisinha...

eu sempre aconselho a usar a classe phpmailer.. para enviar emails.. é melhor do que a funçao existente no php.


<?php
include "config.php";

$email = $_POST['email'];

$consulta = "SELECT email FROM usuarios WHERE user_email like '$email.' ");

$resposta = mysql_query($consulta);


if( mysql_num_rows($resposta) > 0 ){


$linha = mysql_fetch_array($resposta)
$emailRecuperado = $linha["user_email"];


$msg = "
<h2 style='font-family:Verdana;'>Recuperação de Senha</h2><br/>
<div style='Verdana; font-size:10pt;'>
Sua senha é: <span style='font-weight: bold;' $emailRecuperado</span>
</div>";

$mensagem = $msg;
$destinatario = $email;
$assunto = "Recupeação de senha";
$headers = "Bcc: [email protected]";

ini_set('sendmail_from', '[email protected]');
mail($destinatario, $assunto, $mensagem, $headers);

}else{
echo "Não Consta na base de dados";

}
?>

Dif mais a senha ta criptografada com MD5 vai funcionar mesmo assim? esse script vai mostrar a senha do usuario?

Dif continua dando erro na linha abaixo:

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/jeantava/public_html/recuperalogin.php on line 10

Dif continua dando erro na linha abaixo:

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/jeantava/public_html/recuperalogin.php on line 10

Link para o comentário
Compartilhar em outros sites

Lembre-se que a senha criptografada em md5 é "impossível" se fazer a volta.

Eu recomendo que você faça como o dif falou, redefina a senha do usuário, que é muito mais simples.

Utilize letras minusculas e maiusculas, além de números. Sempre faço aqui nos meus sistemas e sites, com no mínimo 20 caracteres.

Abraços

Link para o comentário
Compartilhar em outros sites

  • Moderador

eu gosto de sempre usar uma expressão regular que define o minimo de 6 caracteres , máximo de 20 caracteres, com no minimo uma letra maiúscula, uma letra minuscula e um numero + a criptografia de dados. além de usar um controle de nível de senha feito em jquery.

em um ato de loucura.. eu já cheguei a fazer duas criptografias em um trabalho de aula... rsrs

crioptografei em MD5 e depois o hash gerado eu criptografei em base_64

Link para o comentário
Compartilhar em outros sites

  • 1 ano depois...
Bom dia galera estou vasculhando na net uns codigos para eu colocar em meu site um form para o usuário recuperar a senha dele caso ele esqueça e dentre os q ja vi o q encontrei foi esse abaixo mais ele ta dando um erro na linhda a seguir:

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/jeantava/public_html/recuperalogin.php on line 9

E O COMANDO ESTÁ CORRETO vocês PODERIAM ME AUXILIAR NESSE SCRIPT SEGUE O SCRIPT ABAIXO.

Arquivo recuperalogin.php

<?php

include "config.php";

$email = $_POST['email'];

$query = mysql_query("SELECT * FROM usuarios WHERE user_email = '".$email."'");

if(mysql_num_rows($query) > 0){

$rs = mysql_fetch_array($query);

$senha_banco = $rs["senha"];

$msg = "<font face=\"Verdana\" size=\"2\">Recuperação de senha</font><br><br>";
$msg .="<font face=\"Verdana\" size=\"2\"><strong>Sua senha é: </strong>".$senha_banco."</font><br><br>";

$mensagem = $msg;
$destinatario = $email;
$assunto = "Recupeação de senha";
$headers = "Bcc: [email][email protected][/email]";

ini_set('sendmail_from', '[email protected]');
mail($destinatario, $assunto, $mensagem, $headers);

$erro = "Mensagem enviada com sucesso!";
}
else{
$erro = "Seu e-mail não consta em nossa base de dados!";
}

?>

TENTE ISSO...

<?php
include "config.php";

//VOCÊ PRECISA INFORMAR QUE O POST VEM DE UM FORMOLÁRIO
//ENTÃO, FICARIA ASSIM:

if(isset($_POST[/* aqui você informa o parâmetro passado no submit do formulário */])){

$email = $_POST['email'];

$consulta = "SELECT * FROM usuarios WHERE user_email = '$email'";

$resposta = mysql_num_rows($consulta);


if($resposta > 0 ){

while($linha = mysql_fetch_array($resposta)){
$emailRecuperado = $linha["user_email"];
}


$msg = "
<h2 style='font-family:Verdana;'>Recuperação de Senha</h2><br/>
<div style='Verdana; font-size:10pt;'>
Sua senha é: <span style='font-weight: bold;' $emailRecuperado</span>
</div>";

$mensagem = $msg;
$destinatario = $email;
$assunto = "Recupeação de senha";
$headers = "Bcc: [email][email protected][/email]";

ini_set('sendmail_from', '[email protected]');
mail($destinatario, $assunto, $mensagem, $headers);

}else{
echo "Não Consta na base de dados";

}
}
?>

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...