Ver Mensaje Individual
  #11 (permalink)  
Antiguo 20/02/2014, 13:31
Avatar de elesanchezf
elesanchezf
 
Fecha de Ingreso: septiembre-2011
Ubicación: México
Mensajes: 20
Antigüedad: 13 años, 6 meses
Puntos: 1
Mensaje Respuesta: Recuperar Password ingresando matrícula en form

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&ntilde;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&ntilde;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.