Foros del Web » Programando para Internet » PHP »

Reemplazar contraseña md5 por una nueva

Estas en el tema de Reemplazar contraseña md5 por una nueva en el foro de PHP en Foros del Web. Buenas. Hice lo siguiente por si un usuario se olvida de la contraseña: Código PHP: <? function  GenerarClave () {          $nuevaclave  =  '' ;          ...
  #1 (permalink)  
Antiguo 19/05/2010, 20:45
Avatar de 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.
  #2 (permalink)  
Antiguo 19/05/2010, 20:59
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Reemplazar contraseña md5 por una nueva

bueno, es cierto que necesitas una consulta UPDATE para actualizar la nueva contraseña...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 19/05/2010, 21:16
Avatar de reborn  
Fecha de Ingreso: febrero-2010
Mensajes: 440
Antigüedad: 14 años, 9 meses
Puntos: 1
Respuesta: Reemplazar contraseña md5 por una nueva

Si, perdon, me olvide de mencionar eso y es justamente lo q no me sale porq no se donde ubicar el update.
Hice algo asi:
Código PHP:
$update "UPDATE usuarios SET passwdord='$newpass' WHERE usuario='$usuario'"
Pero ahi ya me pierdo.


en este caso no tendria efecto usuario porq el usuario no inicio sesion por lo tanto no tengo ninguna variable q lo identifique y tendria q hacer el update con la condicion del email al q se envia la nueva clave, esta bien asi?
Igual sigo perdido en donde colocar el update :S

Última edición por reborn; 19/05/2010 a las 21:38

Etiquetas: contraseña, reemplazar
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 20:57.