ya me fusiona el código, esta perfectisimo, que es lo que hace?
el usuario registrado ingresa su email en forgot.php y se le envía una url para el restablecimiento de su pass al email luego al abrir la url el usuario entra a password_reset.php ingresa su nueva contraseña y listo ya puede iniciar sesión a pero una ves hecho el cambio se le muestra la confirmación password_reset_confirmation.php, la contraseña esta encriptada y se cambia encriptada.
este es el código completo php del archivo forgot.php
Código PHP:
<?php require_once('Connections/tubd.php'); ?>
<?php
if($_POST['button']){
if($_POST['mail']){
if(empty($_POST['mail'])) {
$error =false;
}
$mail = htmlentities($_POST['mail']);
$link = mysql_connect ($hostname_bd, $username_bd, $password_bd) or die(mysql_error());
mysql_select_db($database_bd,$link);
$queEmp = "SELECT * FROM tutabla WHERE email='$mail'";
$resEmp = mysql_query($queEmp, $link) or die(mysql_error());
$totEmp = mysql_num_rows($resEmp);
if($totEmp == 0){
$error = true;
echo "<script language=Javascript> window.location =\"forgot.php\"; </script>";
exit();
}
$row = mysql_fetch_assoc($resEmp);
$hash = md5($row['password']) or die(mysql_error());
$headers .= "From:Nueva clave de usuario <[email protected]>\r\n";
$headers .= "CC: [email protected]\r\n";
$message = "hemos recibido una
solicitud para restablecer tu contraseña.
Para restablecer la contraseña, haz clic o copia y pega la URL en tu navegador.
http://www.tuweb.com/password_reset.php?id=".$hash."&mail=".$mail."
Si estás recibiendo muchos correos electrónicos de restablecimiento de contraseña que no solicitaste, puedes cambiarla Iniciando sesión para prevenir el robo de información.
Por favor, no respondas a este mensaje; fue enviado desde una dirección de correo electrónico no supervisada. Este mensaje es un servicio de correo electrónico relacionado con tu uso en el portar.";
//echo ($message);
if (mail($mail,"Recuperar password",$message,$headers)){
$msg = "Hemos enviado las instrucciones de restablecimiento de contraseña a tu dirección de correo electrónico, Si no recibes las instrucciones dentro de pocos minutos, revisa el spam de tu correo electrónico y correo no deseado..";
}
}
}
?>
este es el código del formulario en forgot.php
Código HTML:
<form action="forgot.php" class="login-form" method="post" name="recupera">
<em><?=$msg?></em>
<input name="mail" type="text" required="required" class="login-input" id="mail" placeholder='Ingresa tu email' value="">
<input type="submit" class="login-btn" value="Recuperar" name="button" id="button">
</form>
y este es el código PHP de password_reset.php
Código PHP:
<?php require_once('Connections/tubd.php'); ?>
<?
$id = htmlentities($_GET['id']);
$mail = htmlentities($_GET['mail']);
$pass = md5($_POST['pass']);
if($_POST['button']){
if(isset($id) && isset($mail)){
$link = mysql_connect ($hostname_bd, $username_bd, $password_bd);
mysql_select_db($database_bd,$link);
$queEmp = "SELECT * FROM tutabla WHERE email='$mail'";
$resEmp = mysql_query($queEmp, $link) or die(mysql_error());
$totEmp = mysql_num_rows($resEmp);
if($totEmp == 0){
echo "El mail ingresado no existe";
exit();
}
$row = mysql_fetch_assoc($resEmp);
$hash = md5($row['password']);
if($hash == $id){
$sql = "UPDATE tutabla SET password='".$pass."' WHERE email='$mail'";
mysql_query($sql,$link);
$msg = " Contraseña cambiada correctamente";
header('Location: password_reset_confirmation.php');
}
}
}
?>
y este del formulario
Código HTML:
<form name="form1" action="password_reset.php?id=<?=$id?>&mail=<?=$mail?>" class="login-form" method="post">
<em><?=$msg?></em>
<input name="pass" type="password" required="required" class="login-input" id="pass" placeholder='Ingresa tu nueva contraseña...'>
<input type="submit" class="login-btn" value="Guardar" name="button" id="button">
</form>
y eso es todo muchas gracias por la ayuda... nos vemos.