Ver Mensaje Individual
  #45 (permalink)  
Antiguo 20/09/2014, 11:30
Avatar de sarumanice
sarumanice
 
Fecha de Ingreso: mayo-2008
Ubicación: Lima, Peru
Mensajes: 103
Antigüedad: 16 años
Puntos: 4
Respuesta: APORTE: Activacion de cuenta de usuarios via e-mail.

Hola, a todos tengo un problema probando tu ejemplo, al parecer me lleva al registra.php luego del formulario pero no me muestra nada, ni un error ni nada no se que puede estar pasando, ya comprobe la conexion a la db y no hay problema, copio el codigo eliminando el usuario y pass. saludos.

Código PHP:
Ver original
  1. <?php
  2. //datos para establecer la conexion con la base de mysql.
  3. $conexion=mysql_connect('localhost','usuario','pass')or die ('Ha fallado la conexión: '.mysql_error());
  4. mysql_select_db('disoluco_registro2')or die ('Error al seleccionar la Base de Datos: '.mysql_error());
  5.  
  6.  
  7. //añadimos la funcion que se encargara de generar un numero aleatorio
  8. function genera_random($longitud){  
  9.     $exp_reg="[^A-Z0-9]";  
  10.     return substr(eregi_replace($exp_reg, "", md5(rand())) .  
  11.        eregi_replace($exp_reg, "", md5(rand())) .  
  12.        eregi_replace($exp_reg, "", md5(rand())),  
  13.        0, $longitud);  
  14. }
  15.  
  16.  
  17.  
  18. // verificamos si se han enviado ya las variables necesarias, las que tenemos en nuestro form cambialo, como sea el tuyo.
  19. if (isset($_POST["username"])) {
  20.     $usuario = $_POST["username"];
  21.     $password = $_POST["password"];
  22.     $password2 = $_POST["password2"];
  23.     $email = $_POST["email"];
  24.     // Hay campos en blanco
  25.     if($usuario==NULL|$password==NULL|$password2==NULL|$email==NULL) {
  26.         echo "un campo está vacio.";
  27.         formRegistro();
  28.     }else{
  29.         // ¿Coinciden las contraseñas?
  30.         if($password!=$password2) {
  31.             echo "Las contraseñas no coinciden";
  32.              
  33.         }else{
  34.             // Comprobamos si el nombre de usuario o la cuenta de correo ya existían
  35.             $checkuser = mysql_query("SELECT usuario FROM suscriptores WHERE usuario='$usuario'");
  36.             $usuario_exist = mysql_num_rows($checkuser);
  37.             $checkemail = mysql_query("SELECT email FROM suscriptores WHERE email='$email'");
  38.             $email_exist = mysql_num_rows($checkemail);
  39.             if ($email_exist>0) {
  40.                 echo "La cuenta de correo estan ya en uso";
  41.                  
  42.         }else{
  43.                 if ($usuario_exist>0) {
  44.                 echo "El nombre de usuario  esta ya en uso";
  45.                  
  46.                  
  47.                  
  48.             }else{
  49.              
  50.                   //agregamos la variable $activate que es un numero aleatorio de  
  51.                   //20 digitos crado con la funcion genera_random de mas arriba
  52.                    
  53.                   $activate = genera_random(20);  
  54.                    
  55.                   //aqui es donde insertamos los nuevos valosres en la BD  activate y el valor 1 que es desactivado
  56.                    
  57.                 $query = 'INSERT INTO suscriptores (usuario, password, email, fecha, activate, estado)
  58.                VALUES (\''.$usuario.'\',\''.$password.'\',\''.$email.'\',\''.date("Y-m-d").'\',\''.$activate.'\', 1)';
  59.                 mysql_query($query) or die(mysql_error());
  60.                  
  61.                  
  62.                  
  63.                 echo "<table width=70%><tr bgcolor= #61e877 class= estilo30><div align=center>";
  64.                 echo 'Ha sido registrado en Disolu como: <b>'.$usuario.' </b>de manera satisfactoria.<br />';
  65.                 echo ' Gracias. Le enviaremos ahora un email<br />';
  66.                 echo 'para activar su cuenta, al correo que nos facilito.<br />';
  67.                 echo "</div></tr>";
  68.                 echo "</table>";
  69.                  
  70.                  
  71.                  
  72.                 $query   = "SELECT * FROM usuario WHERE usuario='$usuario'";
  73.          $result = mysql_query($query , $conexion) or die ( mysql_error() );
  74.          $row   = mysql_fetch_array($result);
  75.          
  76.          $path="http://www.miweb.com/base/"; //creamos nuestra direccion, con las carpetas que sean si hay
  77.          //armamos nuestro link para enviar por mail en la variable $activateLink
  78. $activateLink=$path."activar_registro.php?id=".$row['id']."&activateKey=".$activate."";
  79.                  
  80.                           // Datos del email
  81.  
  82. $nombre_origen    = "nombre";
  83. $email_origen     = "[email protected]";
  84. $email_copia      = "[email protected]";
  85. $email_ocultos    = "[email protected]";
  86. $email_destino    = "".$row['email']."";  
  87.  
  88.  
  89.  
  90. $asunto           = "".$row['usuario']." Datos de registro en MIWEB, guarde este email.";
  91.  
  92. $mensaje          = '<table width="629" border="0" cellspacing="1" cellpadding="2">
  93.  <tr>
  94.    <td width="623" align="left"></td>
  95.  </tr>
  96.  <tr>
  97.    <td bgcolor="#2EA354"><div style="color:#FFFFFF; font-size:14; font-family: Arial, Helvetica, sans-serif; text-transform: capitalize; font-weight: bold;"><strong>     Estos son sus datos de registro, '.$row['usuario'].'</strong></div></td>
  98.  </tr>
  99.  <tr>
  100.    <td height="95" align="left" valign="top"><div style=" color:#000000; font-family:Arial, Helvetica, sans-serif; font-size:12px; margin-bottom:3px;"> USUARIO: '.$row['usuario'].'</strong><br><br><br>
  101.          <strong>SU CLAVE : </strong>'.$row['password'].'</strong><br><br><br>
  102.          <strong>SU EMAIL : </strong>'.$row['email'].'</strong><br><br><br>
  103.          <strong>SU LINK DE ACTIVACION:<br><a href="'.$activateLink.'">'.$activateLink.' </strong></a><br><br><br>
  104.          <strong>POR FAVOR HAGA CLICK EN LINK DE ARRIBA PARA ACTIVAR SU CUENRA Y ACCEDER A LA PAGINA SIN RESTRICCIONES</strong><br><br><br>
  105.          <strong>SI EL LINK NO FUNCIONA ALA PRIMERA INTENTELO UNA SEGUNDA, EL SERVIDOR A VECES TARDA EN PROCESAR LA PRIMERA ORDEN</strong><br><br><br>
  106.          
  107.          <strong>GRACIAS POR REGISTRARSE EN MIWEB.</strong><br><br><br>
  108.    </div>
  109.    </td>
  110.  </tr>
  111. </table>';
  112.  
  113.  
  114.  
  115. $formato          = "html";
  116.  
  117. //*****************************************************************//
  118. $headers  = "From: $nombre_origen <$email_origen> \r\n";
  119. $headers .= "Return-Path: <$email_origen> \r\n";
  120. $headers .= "Reply-To: $email_origen \r\n";
  121.  
  122.  
  123. $headers .= "X-Sender: $email_origen \r\n";
  124.  
  125. $headers .= "X-Priority: 3 \r\n";
  126. $headers .= "MIME-Version: 1.0 \r\n";
  127. $headers .= "Content-Transfer-Encoding: 7bit \r\n";
  128.  
  129. //*****************************************************************//
  130.  
  131. if($formato == "html")
  132.  { $headers .= "Content-Type: text/html; charset=iso-8859-1 \r\n";  }
  133.    else
  134.     { $headers .= "Content-Type: text/plain; charset=iso-8859-1 \r\n";  }
  135.  
  136. @mail($email_destino, $asunto, $mensaje, $headers))  
  137.      
  138.      
  139.                  
  140.                  
  141.                  
  142.                  
  143.                  
  144.                 }
  145.             }
  146.         }
  147.     }
  148. }else{
  149.      
  150. }
  151.  
  152. ?>

Última edición por sarumanice; 20/09/2014 a las 11:35 Razón: Copie mal el codigo