Ver Mensaje Individual
  #2 (permalink)  
Antiguo 16/07/2011, 21:23
Avatar de jatg
jatg
 
Fecha de Ingreso: abril-2011
Ubicación: caracas
Mensajes: 152
Antigüedad: 13 años, 1 mes
Puntos: 15
Respuesta: Para los GENIOS, problema al logear con encriptacion SHA-1 de SMF

hola extreme, trata de utilizar algo como esto si quieres te paso los archivos suerte


Código PHP:
Ver original
  1. if($_POST['username']!='' && $_POST['password']!='' && $_POST['password']==$_POST['password_confirmed'] && $_POST['email']!='' && valid_email($_POST['email'])==TRUE && checkUnique('Username', $_POST['username'])==TRUE && checkUnique('Email', $_POST['email'])==TRUE)
  2.  
  3.  
  4.             $query = mysql_query("INSERT INTO users (`Username` , `Password`, `Email`, `Random_key`) VALUES ('".mysql_real_escape_string($_POST['username'])."', '".mysql_real_escape_string(md5($_POST['password']))."', '".mysql_real_escape_string($_POST['email'])."', '".random_string('alnum', 32)."')") or die(mysql_error());
  5.  
  6.             $getUser = mysql_query("SELECT ID, Username, Email, Random_key FROM users WHERE Username = '".mysql_real_escape_string($_POST['username'])."'") or die(mysql_error());
  7.  
  8.             if(mysql_num_rows($getUser)==1)
  9.             {
  10.  
  11.                 $row = mysql_fetch_assoc($getUser);
  12.                 $headers = 'From: [email protected]' . "\r\n" .
  13.                 'Reply-To: [email protected]' . "\r\n" .
  14.                 'X-Mailer: PHP/' . phpversion();
  15.                  $subject = "Activation de registro de usuarios www.josealexis.com";
  16.                  $message = "hola ".$row['Username'].", éste es su eslabón de activación para unir nuestro website. Para por favor confirmar su número de miembros haga clic en lo siguiente eslabón : http://www.josealexis.tk/confirm.php?ID=".$row['ID']."&key=".$row['Random_key']. " gracias por registrarse";
  17.                  if(mail($row['Email'], $subject, $message, $headers))
  18.                 {//we show the good guy only in one case and the bad one for the rest.
  19.                     $msg = 'Registro creado. Por favor haga click en el enlace que le hemos enviado a su dirrecion de correo electronico para activar su cuenta.';
  20.                       echo "&msg=$msg";
  21.  
  22.  
  23.  
  24.  
  25.                 echo "&estatus=ok&"; //registro exitoso
  26.  
  27.                 }
  28.                 else {
  29.                     $error = 'La cuenta esta creada pero falta que usted active la misma en en link que le hemos enviado a su direccion de e-mail';
  30.                    echo "&error=". $error;
  31.                 }
  32.             }
  33.             else {
  34.                 $error = 'se ha terminado su tiempo de velides para activar su cuenta. Por favor registrese nuevamente .';
  35.                   echo "&error=". $error;
  36.             }
  37.  
  38.         }
  39.  
  40.          }
  41. ?>
  42. <?=$_SERVER['PHP_SELF']?>



aqui en confirm.php

Código PHP:
Ver original
  1. <?php
  2. require_once('db.php');
  3. include('functions.php');
  4.  
  5.     if($_GET['ID']!='' && numeric($_GET['ID'])==TRUE && strlen($_GET['key'])==32 && alpha_numeric($_GET['key'])==TRUE)
  6.     {
  7.  
  8.         $query = mysql_query("SELECT ID, Random_key, Active FROM users WHERE ID = '".mysql_real_escape_string($_GET['ID'])."'");
  9.  
  10.         if(mysql_num_rows($query)==1)
  11.         {
  12.             $row = mysql_fetch_assoc($query);
  13.             if($row['Active']==1)
  14.             {
  15.                 echo "&error=".$error = 'This member is already active !';
  16.             }
  17.             elseif($row['Random_key']!=$_GET['key'])
  18.             {
  19.                 echo "&error=".$error = 'The confirmation key that was generated for this member does not match with the one entered !';
  20.             }
  21.             else
  22.             {
  23.                 $update = mysql_query("UPDATE users SET Active=1 WHERE ID='".mysql_real_escape_string($row['ID'])."'") or die(mysql_error());
  24.                 $msg = 'Congratulations !  You just confirmed your membership !';
  25.             }
  26.         }
  27.         else {
  28.  
  29.             echo "&error=".$error = 'User not found !';
  30.  
  31.         }
  32.  
  33.     }
  34.     else {
  35.  
  36.         $error = 'Invalid data provided !';
  37.  
  38.     }
  39.  
  40.     if(isset($error))
  41.     {
  42.         echo "&error=".$error;
  43.     }
  44.     else {
  45.         echo "&msg=".$msg;
  46.     }
  47. ?>


y aqui el confirm_pass.php

Código PHP:
Ver original
  1. <?php
  2. require_once('db.php');
  3. include('functions.php');
  4.  
  5.     $query = mysql_query("SELECT * FROM users WHERE ID = '".mysql_real_escape_string($_GET['ID'])."'");
  6.  
  7.     if(mysql_num_rows($query)==1)
  8.     {
  9.         $row = mysql_fetch_assoc($query);
  10.         if($row['Temp_pass']==$_GET['new'] && $row['Temp_pass_active']==1)
  11.         {
  12.             $update = mysql_query("UPDATE users SET Pass = '".md5(mysql_real_escape_string($_GET['new']))."', Temp_pass_active=0 WHERE ID = '".mysql_real_escape_string($_GET['ID'])."'");
  13.             $msg = 'Your new password has been confirmed. You may login using it.';
  14.         }
  15.         else
  16.         {
  17.             $error = 'The new password is already confirmed or is incorrect';
  18.         }
  19.     }
  20.     else {
  21.         $error = 'You are trying to confirm a new password for an unexisting member';
  22.     }
  23.  
  24.     if(isset($error))
  25.     {
  26.         echo $error;
  27.     }
  28.     else {
  29.         echo $msg;
  30.     }
  31. ?>
__________________
www.josealexis.net