Ver Mensaje Individual
  #1 (permalink)  
Antiguo 21/05/2010, 09:34
den_22
 
Fecha de Ingreso: enero-2010
Mensajes: 198
Antigüedad: 15 años, 2 meses
Puntos: 1
Activar usuario mediante email

Hola amigos!, tengo mi codigo de registro y login de usuario todo junto aqui, el tema es que agregué 2 campos en la base de datos "codigo" y "estado" estado puesto en 0.
Estos dos campos al hacer un registro todo bien, se insertan el codigo aleatorio y el 0.
Ahora lo que yo trato de implementar es mandarle un email al usuario con ese codigo aleatorio para que al clickear en ese link la base de datos se actualice el estado y se ponga en 1. y asi poder entrar.
porque el tema es que los usuarios al no tener esto registran cualquier email.
Como lo coloco en mi codigo?

Gracias, por leer.

Código PHP:
Ver original
  1. <?php
  2.  
  3.  
  4.  
  5. error_reporting(E_ALL ^ E_NOTICE);
  6.  
  7.  
  8.  
  9. require("connect.php");
  10. require("functions.php");
  11.  
  12. define('INCLUDE_CHECK',true);
  13.  
  14. //Archivos incluidos solo si el INCLUDE_CHECK est� definido
  15.  
  16. session_name('pLogin');
  17. //Empezando la sesi�n
  18.  
  19. //La cookie vive por 2 semanas
  20.  
  21.  
  22. if($_SESSION['id'] && !isset($_COOKIE['dmRemember']) && !$_SESSION['rememberMe'])
  23. {
  24.     //Si est� logueado, pero no tiene la cookie dmRemember (el navegador se reinicia)
  25.     // y si no ha checkeado la rememberMe checkbox:
  26.    
  27.     $_SESSION=array();
  28.    
  29.     //Destruir la sesion
  30. }
  31.  
  32. if(isset($_GET['logoff']))
  33. {
  34.     $_SESSION=array();
  35.    
  36.     header("Location: index.php");
  37.     exit;
  38. }
  39.  
  40. if($_POST['submit']=='Ingresar')
  41. {
  42.     //checando si el login form ha sido submit
  43.     $err=array();
  44.     //Tira los errores nuestros
  45.    
  46.    
  47. if(!$_POST['username'] || !$_POST['password'])
  48.     $err[]='Todos los campos deben ser completados!';
  49.  
  50. if(!count($err))
  51. {
  52.     $_POST['username']=mysql_real_escape_string($_POST['username']);
  53.     $_POST['password']=mysql_real_escape_string($_POST['password']);
  54.     $_POST['rememberMe']=(int)$_POST['rememberMe'];
  55.    
  56.     //escaping all input data
  57.    
  58.     $row=mysql_fetch_assoc(mysql_query("SELECT id,usuario FROM members WHERE usuario='{$_POST['username']}' AND pass='".md5($_POST['password'])."'"));
  59.    
  60.     if($row['usuario'])
  61.     {
  62.         //Si todo est� logueado correctamente
  63.        
  64.         //$_SESSION['username']=$row['user'];
  65.         $_SESSION['usuario']=$row['usuario'];
  66.         $_SESSION['id']=$row['id'];
  67.         $_SESSION['sexo']=$row['sexo'];
  68.         $_SESSION['rememberMe']=$_POST['rememberMe'];
  69.        
  70.         //Store some data in the session
  71.        
  72.         setcookie('dmRemember',$_POST['rememberMe']);
  73.         }
  74.         else    $err[]='Usuario y/o Password incorrectos!';
  75.     }
  76.    
  77.     if($err)
  78.     $_SESSION['msg']['login-err']=implode('<br />', $err);
  79.     //Guardamos los mensajes de error en la sesion
  80.    
  81.     header("Location: index.php");
  82.     exit;
  83. }
  84. else if($_POST['submit2']=='Registrar')
  85. {
  86.     //Si el formulario de registro ha sido enviado
  87.    
  88.     $err=array();
  89.     if(strlen($_POST['firstname'])>100)
  90.     {
  91.         $err[]='Tu nombre(s) debe tener menos de 100 caracteres!';
  92.     }
  93.  
  94.     if(!preg_match('/[^0-9-_.]+/i',$_POST['firstname']))
  95.     {
  96.         $err[]='Tu nombre(s) contiene caracteres inválidos!';
  97.     }
  98.  
  99.     if(strlen($_POST['lastname'])>100)
  100.     {
  101.         $err[]='Tu apellido debe tener menos de 100 caracteres!';
  102.     }
  103.  
  104.     if(!preg_match('/[^0-9-_.]+/i',$_POST['lastname']))
  105.     {
  106.         $err[]='Tu apellido contiene caracteres inválidos!';
  107.     }
  108.    
  109.     if(strlen($_POST['username'])<4 || strlen($_POST['username'])>100)
  110.     {
  111.         $err[]='Tu nombre de usuario debe tener entre 4 y 100 caracteres!';
  112.     }
  113.    
  114.     if(preg_match('/[^a-z0-9-_.]+/i',$_POST['username']))
  115.     {
  116.         $err[]='Tu nombre de usuario contiene caracteres inválidos!';
  117.     }
  118.    
  119.     if(strlen($_POST['password'])<6 || strlen($_POST['password'])>32)
  120.     {
  121.         $err[]='Tu contraseña debe tener entre 6 y 32 caracteres!';
  122.     }
  123.    
  124.     if(preg_match('/[^a-z0-9-_.]+/i',$_POST['password']))
  125.     {
  126.         $err[]='Tu contrase�a es d�bil!';
  127.     }
  128.    
  129.     if($_POST['repassword']!=$_POST['password'])
  130.     {
  131.         $err[]='Tu repetición de password es distinta de la primera!';
  132.     }
  133.    
  134.     if(!checkEmail($_POST['email']))
  135.     {
  136.         $err[]='Tu email no es válido!';
  137.     }
  138.    
  139.     if(!count($err))
  140.     {
  141.         //Si no hay errores
  142.        
  143.         $_POST['email']=mysql_real_escape_string($_POST['email']);
  144.         $_POST['password']=mysql_real_escape_string($_POST['password']);
  145.         $_POST['username']=mysql_real_escape_string($_POST['username']);
  146.         $_POST['firstname']=mysql_real_escape_string($_POST['firstname']);
  147.         $_POST['lastname']=mysql_real_escape_string($_POST['lastname']);
  148.         $_POST['sexo']=mysql_real_escape_string($_POST['sexo']);
  149.         $_POST['interestin']=mysql_real_escape_string($_POST['interestin']);
  150.         $_POST['estadocivil']=mysql_real_escape_string($_POST['estadocivil']);
  151.         $_POST['pais']=mysql_real_escape_string($_POST['pais']);
  152.        
  153.         //Escape the input data
  154.     function genera_random($longitud){
  155.     $exp_reg="[^A-Z0-9]";
  156.     return substr(eregi_replace($exp_reg, "", md5(rand())) .
  157.        eregi_replace($exp_reg, "", md5(rand())) .
  158.        eregi_replace($exp_reg, "", md5(rand())),
  159.        0, $longitud);
  160. }
  161. $codigo = genera_random(20);
  162.        
  163.        
  164.             mysql_query("   INSERT INTO members(firstname,lastname,usuario,pass,email,sexo,interestin,estadocivil,pais,codigo,estado,dt)
  165.                         VALUES('".$_POST['firstname']."','".$_POST['lastname']."','".$_POST['username']."','".md5($_POST['password'])."','".$_POST['email']."','".$_POST['sexo']."','".$_POST['interestin']."','".$_POST['estadocivil']."','".$_POST['pais']."','$codigo','0',NOW())")
  166.                        
  167.                         or  die("Problemas en el select:".mysql_error());
  168.            
  169.             if(mysql_affected_rows($link)==1)
  170.             {
  171.                 send_mail(  '[email protected]',
  172.                         $_POST['email'],
  173.                         'Registro ',
  174.                         ' Tu nombre de usuario es: '.$_POST["username"].'n Tu contraseña es: '.$_POST["password"]);
  175.                        
  176.                
  177.                 $_SESSION['msg']['reg-success']='Revisa tu correo electronico para confirmar tu cuenta!';
  178.                 }
  179.                 else
  180.                  $err[]='El nombre de usuario ya está en uso!';
  181.                  
  182.                
  183.             }
  184.            
  185.             if(count($err))
  186.             {
  187.                 $_SESSION['msg']['reg-err']=implode('<br />',$err);
  188.             }
  189.                
  190.     header("Location: index.php");
  191.     exit;
  192.        
  193.            
  194.     }
  195.  
  196.  
  197.  
  198.  
  199. ?>