Foros del Web » Programando para Internet » PHP »

Olvido de contraseña php y mysql

Estas en el tema de Olvido de contraseña php y mysql en el foro de PHP en Foros del Web. Buen dia saben de algun buen tutorial que explique de la creación del "recordar contraseña"? Pero que realmente funcione, estado gran parte de la mañana ...
  #1 (permalink)  
Antiguo 24/02/2012, 15:04
 
Fecha de Ingreso: diciembre-2011
Mensajes: 13
Antigüedad: 12 años, 4 meses
Puntos: 0
Olvido de contraseña php y mysql

Buen dia saben de algun buen tutorial que explique de la creación del "recordar contraseña"?
Pero que realmente funcione, estado gran parte de la mañana y tarde buscando una orientacion en gooogle y casi todos los temas estan a media o no funcionan ?
alguien que me pueda orientar?

  #2 (permalink)  
Antiguo 24/02/2012, 15:13
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: Olvido de contraseña php y mysql

conseguir algo 100% funcional es difícil, a lo sumo un recordar contraseña se compone de:

un form donde el user coloque por ejemplo su email

comparar el email con los de los usuarios registrados (si no existe, no se hace nada)

generar un token único y registrarlo en una table de DB con fecha de espiración

enviar el enlace con el token como parámetro al email del usuario, dicho enlace debe ser el de crear nueva contraseña

cuando el usuario de click al enlace, verificar la expiración del token

* use un captcha opcional
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #3 (permalink)  
Antiguo 24/02/2012, 15:32
 
Fecha de Ingreso: diciembre-2011
Mensajes: 13
Antigüedad: 12 años, 4 meses
Puntos: 0
Respuesta: Olvido de contraseña php y mysql

token es? por favor me explicas porque me acabas de confundir mas de lo que estaba
  #4 (permalink)  
Antiguo 24/02/2012, 17:12
Avatar de DooBie  
Fecha de Ingreso: septiembre-2004
Mensajes: 1.101
Antigüedad: 19 años, 7 meses
Puntos: 71
Respuesta: Olvido de contraseña php y mysql

token = cadena de caracteres aleatorios y que no se repita con otros tokens en esa supuesta tabla.
  #5 (permalink)  
Antiguo 25/02/2012, 08:14
 
Fecha de Ingreso: febrero-2012
Ubicación: misiones
Mensajes: 1
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: Olvido de contraseña php y mysql

hola amigo aqui esta modificalo con tus datos

<?php
include('acceso_db.php'); // incluímos los datos de acceso a la BD
if(isset($_POST['enviar'])) { // comprobamos que se han enviado los datos del formulario
if(empty($_POST['usuario_nombre'])) {
echo "No ha ingresado el usuario. <a href='javascript:history.back();'>Reintentar</a>";
}else {
$usuario_nombre = mysql_real_escape_string($_POST['usuario_nombre']);
$usuario_nombre = trim($usuario_nombre);
$sql = mysql_query("SELECT usuario_nombre, usuario_clave, usuario_email FROM usuarios WHERE usuario_nombre='".$usuario_nombre."'");
if(mysql_num_rows($sql)) {
$row = mysql_fetch_assoc($sql);
$num_caracteres = "10"; // asignamos el número de caracteres que va a tener la nueva contraseña
$nueva_clave = substr(md5(rand()),0,$num_caracteres); // generamos una nueva contraseña de forma aleatoria
$usuario_nombre = $row['usuario_nombre'];
$usuario_clave = $nueva_clave; // la nueva contraseña que se enviará por correo al usuario
$usuario_clave2 = md5($usuario_clave); // encriptamos la nueva contraseña para guardarla en la BD
$usuario_email = $row['usuario_email'];
// actualizamos los datos (contraseña) del usuario que solicitó su contraseña
mysql_query("UPDATE usuarios SET usuario_clave='".$usuario_clave2."' WHERE usuario_nombre='".$usuario_nombre."'");
// Enviamos por email la nueva contraseña
$remite_nombre = ""; // Tu nombre o el de tu página
$remite_email = ""; // tu correo
$asunto = "Recuperación de contraseña"; // Asunto (se puede cambiar)
$mensaje = "Se ha generado una nueva contraseña para el usuario <strong>".$usuario_nombre."</strong>. La nueva contraseña es: <strong>".$usuario_clave."</strong>.";
$cabeceras = "From: ".$remite_nombre." <".$remite_correo.">rn";
$cabeceras = $cabeceras."Mime-Version: 1.0n";
$cabeceras = $cabeceras."Content-Type: text/html";
$enviar_email = mail($usuario_email,$asunto,$mensaje,$cabeceras);
if($enviar_email) {
echo "La nueva contraseña ha sido enviada al email asociado al usuario ".$usuario_nombre.".";
}else {
echo "No se ha podido enviar el email. <a href='javascript:history.back();'>Reintentar</a>";
}
}else {
echo "El usuario <strong>".$usuario_nombre."</strong> no está registrado. <a href='javascript:history.back();'>Reintentar</a>";
}
}
}else {
?>
<form action="<?=$_SERVER['PHP_SELF']?>" method="post">
<label>Usuario:</label><br />
<input type="text" name="usuario_nombre" /><br />
<input type="submit" name="enviar" value="Enviar" />
</form>
<?php
}
?>

Etiquetas: contraseña, mysql, olvido
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:40.