Ver Mensaje Individual
  #1 (permalink)  
Antiguo 19/05/2010, 20:45
Avatar de reborn
reborn
 
Fecha de Ingreso: febrero-2010
Mensajes: 440
Antigüedad: 14 años, 9 meses
Puntos: 1
Reemplazar contraseña md5 por una nueva

Buenas.
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$num1);
            
$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&oacute;n escriba su direcci&oacute;n de correo electr&oacute;nico a la cual llegar&aacute; su login y password de nuevo. </td>
    </tr>
    <tr>
      <td width="10%">&nbsp;</td>
      <td width="90%">&nbsp;</td>
    </tr>
    <tr>
      <td class="Texto">Email:</td>
      <td><input name="email" type="text" id="email"></td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td>&nbsp;</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>
<?
?>
...la parte que no me sale es reemplazar la nueva contraseña por la q esta en la tabla.
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.