Hice lo siguiente por si un usuario se olvida de la contraseña:
Código PHP:
<?
function GenerarClave() {
$nuevaclave = '';
$salt = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
srand((double)microtime()*1000000);
$i = 0;
while ($i < 8) {
$num = rand() % strlen($salt);
$tmp = substr($salt, $num, 1);
$nuevaclave = $nuevaclave . $tmp;
$i++;
}
return $nuevaclave;
}
$result=mysql_query("SELECT usuario, email FROM usuarios WHERE email = '$email'",$db_link);
if (!$result) {
echo("<p>Error al seleccionar tabla: " . mysql_error() . "</p>");
exit();
}
//Si existe el email...
$sql_check_num = mysql_num_rows($result);
if($sql_check_num == 0){
echo "<table width='467'><tr><td><font color=ff0000 face=verdana>El e-mail <b >$email</b> no figura en la base de datos. Por favor, ingrese el e-mail con el que se registró.</font></br><center></table><p>";
?>
<form action="recuperar.php" method="get" name="datos" id="datos">
<table width="50%" border="0" align="center">
<tr>
<td colspan="2" class="Texto">A continuación escriba su dirección de correo electrónico a la cual llegará su login y password de nuevo. </td>
</tr>
<tr>
<td width="10%"> </td>
<td width="90%"> </td>
</tr>
<tr>
<td class="Texto">Email:</td>
<td><input name="email" type="text" id="email"></td>
</tr>
<tr>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td><input type="submit" name="Submit" value="Enviar"></td>
</tr>
</table>
</form>
<?
exit();
}
while ( $row = mysql_fetch_array($result) ) {
$email = $row["email"];
$usuario = $row ["usuario"];
$nuevaclave = GenerarClave();
}
// se crea el email
$denombre="Administrador";
$deemail="[email protected]";
$sfrom="[email protected]";
$sBCC="[email protected]";
$sdestinatario="$email";
$ssubject="Nueva contraseña"; //subject
$shtml="Estimado usuario $usuario, se le envia una nueva contraseña:<br><p>Ud esta registrado en el sistema con los siguientes datos:<p>Email: $email</p><p>Usuario: $usuario<br>Clave: $nuevaclave<br>";
$encabezados = "MIME-Version: 1.0\n";
$encabezados .= "Content-type: text/html; charset=iso-8859-1\n";
$encabezados .= "From: $denombre <$deemail>\n";
$encabezados .= "X-Sender: <$sfrom>\n";
$encabezados .= "BCC: <$sBCC>\n";
$encabezados .= "X-Mailer: PHP\n";
$encabezados .= "X-Priority: 1\n";
$encabezados .= "Return-Path: <$sfrom>\n";
mail($sdestinatario,$ssubject,$shtml,$encabezados);
echo ("<table width='467'><tr><td class='texto'>La nueva clave se ha enviado a la siguiente dirección de correo electrónico: $email</a></td><tr></table>");
?>
<p><br><p><br><p><br><p><center><a href='javascript:window.close();'><IMG SRC='images/cerrar.gif' BORDER='0' ALT='CERRAR'></a></center><p></table>
<?
?>
Probe asi como esta y el mail me lo manda, con los datos y hasta la nueva clave generada pero no logro registrarla en la tabla, o sea, reemplazarla por la vieja.
Gracias.