04/08/2009, 18:17
|
| | Fecha de Ingreso: abril-2008
Mensajes: 43
Antigüedad: 16 años, 7 meses Puntos: 0 | |
Problemas reseteando contraseña Hola a todos:
Estoy realizando un sistema de login el problema se me presento con el enlace de ¿olvidó tu contraseña?
variable: nombreusuario, contrase, email
primero llamo la conexión con BD
la primera función crea contrase aleatoria
la segunda resetea la función
la última la deberia enviar a mi correo que esta guardado en la base de datos.
<?php require_once("Connections.php");?>
<?php
function get_random_word($min_length, $max_length)
{
$word = "";
$dictionary = ("/home..../dict/words.text");//la ruta la acorte para la ocación
$fp = fopen($dictionary, "r");
$size = filesize($dictionary);
srand ((double) microtime() * 1000000);
$rand_location = rand(0, $size);
fseek($fp, $rand_location);
while (strlen($word)< $min_length || strlen($word)>$max_length)
{
if (feof($fp))
fseek($fp, 0);
$word = fgets($fp, 80);
$word = fgets($fp, 80);
};
$word=trim($word);
return $word;
}
function reset_password($nombreusuario)
{
$new_password = get_random_word(6, 13);
srand ((double) microtime() * 1000000);
$rand_number = rand(0, 999);
$new_password .= $rand_number;
$result = mysql_query( "update usuarios
set contrase = password('$new_password')
where nombreusuario = '$nombreusuario'");
if (!$result)
return false;
else
return $new_password;
}
function notify_password($nombreusuario, $contrase)
{
$result = mysql_query("select email from usuarios
where nombreusuario='$nombreusuario'");
if (!$result)
return false;
else if (mysql_num_rows($result)==0)
return false;
else
{
$email = mysql_result($result, 0, "email");
$from = "From: empresa.cl \r\n";
$mesg = "Tu contraseña de ha sido cambiado a $contrase \r\n"
."Por favor utilízalo la próxima ver que hagas log in. \r\n";
if (mail($email, "login información", $mesg, $from))
return true;
else
return false;
}
}
?>
este siguiente código
esta en la página que muestra la información llamo a las funciones
<?php
if ($password=reset_password($nombreusuario))
{
if (notify_password($nombreusuario, $contrase))
echo "Tu nueva Contraseña ha sido enviada a tu dirección email.";
else
echo "Tu contraseña no ha podido ser enviada por email."
." Prueba pulsando actualizar.";
}
else
echo "Tu contraseña no ha podido modificarse - Prueba de nuevo más tarde por favor.";
?>
//respuesta es esta:
Tu contraseña no ha podido ser enviada por email."
." Prueba pulsando actualizar.
Gracias desde ya, cualquier sugerencias, comentario es bienvenida. marpec |