26/12/2009, 21:11
|
| | Fecha de Ingreso: septiembre-2008
Mensajes: 67
Antigüedad: 15 años, 7 meses 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á 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. |