Ver Mensaje Individual
  #1 (permalink)  
Antiguo 26/12/2009, 21:11
h3greed
 
Fecha de Ingreso: septiembre-2008
Mensajes: 67
Antigüedad: 18 años, 1 mes
Puntos: 0
¿Olvidó su contraseña? php y mysql

Hola a todos hace poco postee un registro de usuarios que nos genera una pass boleana que se envia una vez terminado

aqui les dejo el codigo
Código PHP:
 <?php 
function gen_pass () { 
$i=0; 
$password=""; 
// Aqui colocamos el largo del password 
$pw_largo = 8; 
// Colocamos el rango de caracteres ASCII para la creacion de el password 
$desde_ascii = 50; // "2" 
$hasta_ascii = 122; // "z" 
// Aqui quitamos caracteres especiales 
$no_usar = array (58,59,60,61,62,63,64,73,79,91,92,93,94,95,96,108, 111); 
while (
$i < $pw_largo) { 
mt_srand ((double)microtime() * 1000000); 
// limites aleatorios con tabla ASCII 
$numero_aleat = mt_rand ($desde_ascii, $hasta_ascii); 
if (!
in_array ($numero_aleat, $no_usar)) { 
$password = $password . chr($numero_aleat); 
$i++; 
} 
} 
return 
$password; 

} 
// Y aqui ejecutamos la funcion y la guardamos en $p_generado, luego simplemente la cargamos 
$p_gen = gen_pass(); 
?> 
<? 
   
include("dbconexion.php"); 
   if (isset(
$_POST["usuario"])) { 
   
$usuario = $_POST["usuario"]; 
   
$email = $_POST["email"]; 
   
$responsable = $_POST["responsable"]; 
   
$telefono = $_POST["telefono"]; 
   if(
$usuario==NULL|$email==NULL|$responsable==NULL|$telefono==NULL) { 
   echo 
"un campo est&aacute; vacio."; 
   }else{ 
   
$usuario=str_replace(" ","",$usuario); 
   
$email=str_replace(" ","",$email); 
   
$usuario=str_replace("%20","",$usuario);// Quitar posiblesespacios escapados 
   
$email=str_replace("%20","",$email); 
   
$usuario=addslashes($usuario);// add slashes to stop hacking 
   
$email=addslashes($email); 
   
$minuser_len = 6; //username minimum length 
   
if (strlen($usuario) < $minuser_len || strlen($email) < $minemail_len){ 
   echo 
"El usuario debe tener como mínimo 6 digitos"; 
   }else{ 
   
$checkuser = mysql_query("SELECT usuario FROM usuarios WHERE usuario='$usuario'"); 
   
$username_exist = mysql_num_rows($checkuser); 
   
$checkemail = mysql_query("SELECT email FROM usuarios WHERE email='$email'"); 
   
$email_exist = mysql_num_rows($checkemail); 
   if (
$email_exist>0|$usuario_exist>0) { 
   echo 
"EL nombre de usuario $usuario o la cuenta de correo $email estan ya en uso"; 
   }else{ 
   
$query = "INSERT INTO usuarios (usuario, email, responsable, telefono, pass1) VALUES('$usuario','$email','$responsable','$telefono','$p_gen')"; 
   
mysql_query($query) or die(mysql_error()); 
   echo 
"El usuario $usuario se ha generado correctamente con la contraseña le estará llegando al correo brindado por usted"; 
   
$email = $_POST['email'];  
   
$usuario = $_POST['usuario']; 
   
$asunto =    'Confirmacion de registro.';  
   
$mensaje =   "El registro se ha realizado correctamente tu password es    $p_gen";  
   
$cabeceras = 'From: [email protected]' . "\r\n" .  
                         
'Reply-To: [email protected]' . "\r\n" .  
                         
'X-Mailer: PHP/' . phpversion();  

   
mail($email, $asunto, $mensaje, $cabeceras);   
} 
} 
} 
} 
?>
Ahora lo que necesito es generar un ¿Olvidó su contraseña? de la misma manera, que genere una contraseña nueva que la vuelva a ingresar en la base de datos y que nos la envie por correo.

desde ya muchas gracias a los que me puedan aportar.