Ver Mensaje Individual
  #1 (permalink)  
Antiguo 04/08/2009, 18:17
marpec
 
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