Foros del Web » Programando para Internet » PHP »

Problema al verificar el codigo

Estas en el tema de Problema al verificar el codigo en el foro de PHP en Foros del Web. Buenas, Tengo un problema al restablecer contraseña genera un codigo que lo envía por email pero por email envía un código distinto a la que ...
  #1 (permalink)  
Antiguo 26/12/2012, 15:01
 
Fecha de Ingreso: diciembre-2012
Mensajes: 5
Antigüedad: 7 años
Puntos: 0
Problema al verificar el codigo

Buenas, Tengo un problema al restablecer contraseña genera un codigo que lo envía por email pero por email envía un código distinto a la que coloca en la base de datos.

Y no se que error cometí ni como solucionarlo:

resetpassword.php?code=7825192668 y en la base de datos era otro.

el codigo es este:


Código PHP:
<?

    $url_code 
check_input($_REQUEST['code']); 
    
$result mysql_query("SELECT * from users where code='$url_code'");
    
    if(
mysql_num_rows($result) ==0) {
    echo 
"Wrong reset code!";
    @
mysql_close();
    }

else {

while (
$row mysql_fetch_assoc($result)) {
         
$pass=$row['password'];
         
$uname=$row['username'];
         
$code=$row['code'];
         
$email=$row['email'];
        }
        
        
$newpassword rand(1111111111,9999999999);
        
$md5_newpassword=md5($newpassword);

    
$sql1="UPDATE users SET password='$md5_newpassword' where code='$url_code'";
    
mysql_query($sql1);

    
$sql2="UPDATE users SET code='0' where code='$url_code'";
    
mysql_query($sql2);
    @
mysql_close();
    
            
///Mail User
        
$subject "New password";
        
$to $email;
        
$from $support_email;
        
$body"Hello $uname, <br /><br /> 
        This is your updated account details. <br /> User name: $youname <br /> Password: $newpassword<br /><br /> To log into your account with those details click the link below <br />  $server_url/login.php <br /><br />Please remember to change this password when you log in with something you can easily remember.<br /><br />------------------------------------------------<br /> This is an automated E-mail from <br />  $site_name "
;
                
$headers "From: " $from "\n";
                
$headers .= "X-Sender: <" "$to" ">\n";
                
$headers .= "Return-Path: <" "$to" ">\n";
                
$headers .= "Error-To: <" "$to" ">\n";
                
$headers .= "Content-Type: text/html\n";
                
mail($to,$subject,$body,$headers);

    echo 
"New password has been sent to your email, redirecting to login page shortly";
?>
<META HTTP-EQUIV="Refresh"
      CONTENT="5; URL=login.php">
      <?
    
}
?>
el archivo que envia al peticion al poner tu email:

Código PHP:
<div id="error" style="display:none;"><div class="msg" id="sucmsgid"></div><div class="error" id="msgid"></div></div>
<form name="config" action="<?= $_SERVER['PHP_SELF'?>" method="post" style="margin-top: 0px; margin-bottom: 0px;" onSubmit="return forgetpass();">
<div class="profile">

<div class="row">
    <div class="rowleft">
        <span class="fontcolor"><b>Email :</b></span>
    </div>
    <div class="rowright">
        <input type="text" name="email" id="email" value="<?=$youname?>" size="40" maxlength="255" />
    </div>
</div>    
<br /><br />
<div class="row">
    <div class="rowleft">
        
    </div>

    <div class="rowright">
        <input name="submit" value="Restablecer contrase&ntilde;a" type="submit" >
    </div>

Última edición por VIcenHP; 26/12/2012 a las 15:25
  #2 (permalink)  
Antiguo 26/12/2012, 18:11
Avatar de rodrigo791  
Fecha de Ingreso: noviembre-2009
Ubicación: Uruguay
Mensajes: 1.339
Antigüedad: 10 años
Puntos: 168
Respuesta: Problema al verificar el codigo

Supongo que es por esto
Código PHP:
Ver original
  1. $body= "Hello $uname, <br /><br />  
  2.        This is your updated account details. <br /> User name: $youname <br /> Password: $newpassword<br /><br /> To log into your account with those details click the link below <br />  $server_url/login.php <br /><br />Please remember to change this password when you log in with something you can easily remember.<br /><br />------------------------------------------------<br /> This is an automated E-mail from <br />  $site_name ";
  3.                 $headers = "From: " . $from . "\n";

estas enviando $newpassword por email y no envias $md5_newpassword, que croe que es lo que deberías hacer.
  #3 (permalink)  
Antiguo 27/12/2012, 04:24
 
Fecha de Ingreso: diciembre-2012
Mensajes: 5
Antigüedad: 7 años
Puntos: 0
Respuesta: Problema al verificar el codigo

Cita:
Iniciado por rodrigo791 Ver Mensaje
Supongo que es por esto
Código PHP:
Ver original
  1. $body= "Hello $uname, <br /><br />  
  2.        This is your updated account details. <br /> User name: $youname <br /> Password: $newpassword<br /><br /> To log into your account with those details click the link below <br />  $server_url/login.php <br /><br />Please remember to change this password when you log in with something you can easily remember.<br /><br />------------------------------------------------<br /> This is an automated E-mail from <br />  $site_name ";
  3.                 $headers = "From: " . $from . "\n";

estas enviando $newpassword por email y no envias $md5_newpassword, que croe que es lo que deberías hacer.
Ese codigo está bien es la nueva contraseña si es verificada el problema se encuentra que el codigo de verificación es el que envía mal procesa uno en la base de datos y otro lo manda por email
  #4 (permalink)  
Antiguo 27/12/2012, 04:30
 
Fecha de Ingreso: diciembre-2012
Mensajes: 5
Antigüedad: 7 años
Puntos: 0
Respuesta: Problema al verificar el codigo

Con razón con las prisas se me paso poner este codigo,

Código PHP:
function forgetpass($email,$code)
{
 global 
$cp$support_email$site_name$server_url$code;
$msg="";

$sql="select * from users where email='$email'";
$result=mysql_query($sql);
while (
$row mysql_fetch_assoc($result)) {
         
$pass=$row['password'];
         
$youname=$row['username'];
        }
if(
$pass=="")
{        
    
$msg="Dirección de correo electrónico proporcionada incorrecta .";
    
$id=1;
}

else 
{
        
$ip $_SERVER['REMOTE_ADDR'];
        
$code rand(1111111111,9999999999);

        
$sql="UPDATE users SET code='$code' where email='$email'"
        
mysql_query($sql);
        @
mysql_close();

        
///Mail User
        
$subject "Password reset confirmation";
        
$to $email;
        
$from $support_email;
        
$body"Hello $uname, <br /><br /> 
        We have received a request from IP address $ip  to reset your account password. <br /><br /> To reset your password click the link below <br /><br />  $server_url/resetpassword.php?code=$code <br /><br /> If you didn't make this request just ignore this message. <br /><br /><br />-------------------------------------<br /> This is an automated E-mail from <br />  $site_name "
;
                
$headers "From: " $from "\n";
                
$headers .= "X-Sender: <" "$to" ">\n";
                
$headers .= "Return-Path: <" "$to" ">\n";
                
$headers .= "Error-To: <" "$to" ">\n";
                
$headers .= "Content-Type: text/html\n";
                
mail($to,$subject,$body,$headers);
                

    
$msg="Revisa tu Correo electrónico encontrara el email de Restablecimiento.";
    
$id=1;

    } 
  #5 (permalink)  
Antiguo 29/12/2012, 12:13
 
Fecha de Ingreso: diciembre-2012
Mensajes: 5
Antigüedad: 7 años
Puntos: 0
Respuesta: Problema al verificar el codigo

podrían ayudarme?
  #6 (permalink)  
Antiguo 29/12/2012, 12:34
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 11 años, 7 meses
Puntos: 326
Respuesta: Problema al verificar el codigo

Probablemente sea un problema de almacenamiento en la bbdd...

¿Q tipo de campo es code? ¿Integer? ;)
__________________
>> Eleazan's Source
>> @Eleazan
  #7 (permalink)  
Antiguo 29/12/2012, 18:37
Avatar de SirDuque  
Fecha de Ingreso: febrero-2009
Ubicación: Paso del Rey, Buenos Aires, Argentina
Mensajes: 975
Antigüedad: 10 años, 9 meses
Puntos: 89
Respuesta: Problema al verificar el codigo

Cita:
Iniciado por Eleazan Ver Mensaje
Probablemente sea un problema de almacenamiento en la bbdd...

¿Q tipo de campo es code? ¿Integer? ;)
Creo que el problema esta por ahi.
Seria util que no digas que recibis por mail y que esta en la base de datos, ademas cual es la estructura de la tabla donde esta este campo.
__________________
Mono programando!
twitter.com/eguimariano

Etiquetas: html, mysql, sql, verificar
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 11:27.