Foros del Web » Programando para Internet » PHP »

Problema registro de usuario.

Estas en el tema de Problema registro de usuario. en el foro de PHP en Foros del Web. Hola que tal foreros!, miren yo implementé este sistema que saque del foro, lo implemente todo bien, no tira ningún error, hasta ahi bárbaro, pero ...
  #1 (permalink)  
Antiguo 24/12/2012, 13:34
 
Fecha de Ingreso: octubre-2012
Mensajes: 29
Antigüedad: 7 años, 2 meses
Puntos: 0
Problema registro de usuario.

Hola que tal foreros!, miren yo implementé este sistema que saque del foro, lo implemente todo bien, no tira ningún error, hasta ahi bárbaro, pero a mi me tiene que llegar un MAIL de confirmación, cosa que nunca llega. No se si es el problema es porque no estoy testeando desde localhost y se necesita tener un HOST o algo parecido...

Miren les dejo el registro.php para que le echen un vistaso:
Código PHP:
<?php 
session_start
(); 
//datos para establecer la conexion con la base de mysql. 
$conexion mysql_connect('localhost','root','***') or die ('Ha fallado la conexión: '.mysql_error()); 
mysql_select_db('registro')or die ('Error al seleccionar la Base de Datos: '.mysql_error()); 


//añadimos la funcion que se encargara de generar un numero aleatorio 
function genera_random($longitud){  
    
$exp_reg="[^A-Z0-9]";  
    return 
substr(preg_replace($exp_reg""md5(rand())) .  
       
preg_replace($exp_reg""md5(rand())) .  
       
preg_replace($exp_reg""md5(rand())),  
       
0$longitud);  


// verificamos si se han enviado ya las variables necesarias, las que tenemos en nuestro form cambialo, como sea el tuyo. 
if (isset($_POST["username"])) { 
    
$username $_POST["username"]; 
    
$password $_POST["password"]; 
    
$password2 $_POST["password2"]; 
    
$email $_POST["email"]; 
    
// Hay campos en blanco 
    
if($username==NULL|$password==NULL|$password2==NULL|$email==NULL) { 
        echo 
"un campo está vacio."
        
formRegistro(); 
    }else{ 
        
// ¿Coinciden las contraseñas? 
        
if($password!=$password2) { 
            echo 
"Las contraseñas no coinciden"
             
        }else{ 
            
// Comprobamos si el nombre de usuario o la cuenta de correo ya existían 
            
$checkuser mysql_query("SELECT usuario FROM usuarios WHERE usuario='$username'"); 
            
$username_exist mysql_num_rows($checkuser); 
            
$checkemail mysql_query("SELECT email FROM usuarios WHERE email='$email'"); 
            
$email_exist mysql_num_rows($checkemail); 
            if (
$email_exist>0) { 
                echo 
"La cuenta de correo estan ya en uso"
        }else{ 
                if (
$username_exist>0) { 
                echo 
"El nombre de usuario  esta ya en uso"
                 
            }else{ 
             
                  
//agregamos la variable $activate que es un numero aleatorio de  
                  //20 digitos crado con la funcion genera_random de mas arriba 
                   
                  
$activate genera_random(20);   
                   
                  
//aqui es donde insertamos los nuevos valosres en la BD  activate y el valor 1 que es desactivado 
                   
                
$query 'INSERT INTO usuarios (usuario, password, email, fecha, activate, estado) 
                VALUES (\''
.$username.'\',\''.$password.'\',\''.$email.'\',\''.date("Y-m-d").'\',\''.$activate.'\', 1)'
                
mysql_query($query) or die(mysql_error()); 
                 
                 
                 
                echo 
"<table width=70%><tr bgcolor= #61e877 class= estilo30><div align=center>"
                echo 
'Ha sido registrado en Cevit como: <b>'.$username.' </b>de manera satisfactoria.<br />'
                echo 
' Gracias. Le enviaremos ahora un email<br />'
                echo 
'para activar su cuenta, al correo que nos facilito.<br />'
                echo 
"</div></tr>"
                echo 
"</table>"
                 
                 
                 
                
$query   "SELECT * FROM usuarios WHERE usuario='$username'"
         
$result mysql_query($query $conexion) or die ( mysql_error() ); 
         
$row   mysql_fetch_array($result); 
          
         
$path="http://www.runek-ao.com.ar"//creamos nuestra direccion, con las carpetas que sean si hay 
         //armamos nuestro link para enviar por mail en la variable $activateLink 
$activateLink=$path."activar_registro.php?id=".$row['id']."&activateKey=".$activate.""
                 
                          
// Datos del email 

$nombre_origen    "RunekAO"
$email_origen     "[email protected]"
$email_copia      "[email protected]"
$email_ocultos    "[email protected]"
$email_destino    "".$row['email']."";   

$asunto           "".$row['usuario']." Datos de registro en Cevit, guarde este email."

$mensaje          '<table width="629" border="0" cellspacing="1" cellpadding="2"> 
  <tr> 
    <td width="623" align="left"></td> 
  </tr> 
  <tr> 
    <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> 
  </tr> 
  <tr> 
    <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> 
          <strong>SU CLAVE : </strong>'
.$row['password'].'</strong><br><br><br> 
          <strong>SU EMAIL : </strong>'
.$row['email'].'</strong><br><br><br> 
          <strong>SU LINK DE ACTIVACION:<br><a href="'
.$activateLink.'">'.$activateLink.' </strong></a><br><br><br> 
          <strong>POR FAVOR HAGA CLICK EN LINK DE ARRIBA PARA ACTIVAR SU CUENRA Y ACCEDER A LA PAGINA SIN RESTRICCIONES</strong><br><br><br> 
          <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> 
           
          <strong>GRACIAS POR REGISTRARSE EN CEVIT.</strong><br><br><br> 
    </div> 
    </td> 
  </tr> 
</table>'


$formato          "html"

//*****************************************************************// 
$headers  "From: $nombre_origen <$email_origen> \r\n"
$headers .= "Return-Path: <$email_origen> \r\n"
$headers .= "Reply-To: $email_origen \r\n"


$headers .= "X-Sender: $email_origen \r\n"

$headers .= "X-Priority: 3 \r\n"
$headers .= "MIME-Version: 1.0 \r\n"
$headers .= "Content-Transfer-Encoding: 7bit \r\n"
//*****************************************************************// 
  
if($formato == "html"
 { 
$headers .= "Content-Type: text/html; charset=iso-8859-1 \r\n";  } 
   else 
    { 
$headers .= "Content-Type: text/plain; charset=iso-8859-1 \r\n";  } 

@
mail($email_destino$asunto$mensaje$headers);
                } 
            } 
        } 
    } 
}else{ 
     


?>
Bueno gracias de antemano, Saludos!
  #2 (permalink)  
Antiguo 24/12/2012, 14:15
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 10 años, 5 meses
Puntos: 641
Respuesta: Problema registro de usuario.

Así es, tu problema es que desde localhost no puedes enviar mail, debes hacerlo en un hosting. De preferencia de pago.
  #3 (permalink)  
Antiguo 24/12/2012, 15:06
 
Fecha de Ingreso: octubre-2012
Mensajes: 29
Antigüedad: 7 años, 2 meses
Puntos: 0
Respuesta: Problema registro de usuario.

Cita:
Iniciado por memoadian Ver Mensaje
Así es, tu problema es que desde localhost no puedes enviar mail, debes hacerlo en un hosting. De preferencia de pago.
A osea que para mandar Email tengo que tener hosting pago? Yo en estos días justo voy a pagar uno, no me podrías explicar como es la cosa? Tengo entendido que en el Panel De control de mi host tengo que crear un Email y uso siempre ese?


Gracias!!
  #4 (permalink)  
Antiguo 24/12/2012, 16:05
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 10 años, 5 meses
Puntos: 641
Respuesta: Problema registro de usuario.

No necesariamente debes tener uno de pago, pero si te quita algunos dolores de cabeza.

no necesitas hacer nada en tu panel de control si usas mail() de php o la librería phpmailer.

aunque por lo general tienes un limite de envío de mails, alrededor de 50 por hora en uno compartido.
  #5 (permalink)  
Antiguo 24/12/2012, 19:40
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 9 años, 7 meses
Puntos: 461
Respuesta: Problema registro de usuario.

en realidad si puedes enviar mail desde el localhost, usando librerias como swiftmailer aca un poco de referencia y puedes buscar en la web como usar el smtp de gmail para enviar mails, saludos
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #6 (permalink)  
Antiguo 25/12/2012, 02:13
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 10 años, 5 meses
Puntos: 641
Respuesta: Problema registro de usuario.

Cita:
Iniciado por carlos_belisario Ver Mensaje
en realidad si puedes enviar mail desde el localhost, usando librerias como swiftmailer aca un poco de referencia y puedes buscar en la web como usar el smtp de gmail para enviar mails, saludos
Yo una vez instalé eso, y el trabajo que me costó no valió la pena, si tienes un server de pago de 6 USD te ahorras el tener que instalar algo inútil, solo para hacer pruebas.
  #7 (permalink)  
Antiguo 25/12/2012, 11:07
 
Fecha de Ingreso: octubre-2012
Mensajes: 29
Antigüedad: 7 años, 2 meses
Puntos: 0
Respuesta: Problema registro de usuario.

Hola, agadesco a todos por haber respondido, pero hay algo que no me cierra, el sistema de registro con envio de mail ya está programado, para que pueda enviar el mail solo lo tengo que subir a mi host? O tengo que reprogramar todo de nuevo?

Gracias.
  #8 (permalink)  
Antiguo 25/12/2012, 12:06
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 10 años, 5 meses
Puntos: 641
Respuesta: Problema registro de usuario.

por lo que veo de como esta programado solo hay que subir el sistema a tu hosting y de ahí probar.
  #9 (permalink)  
Antiguo 25/12/2012, 16:20
 
Fecha de Ingreso: octubre-2012
Mensajes: 29
Antigüedad: 7 años, 2 meses
Puntos: 0
Respuesta: Problema registro de usuario.

Agradesco tus respuestas Memoadian...

Pero ahora tengo un problema, que me parece raro, cuando lo testeaba de localhost a este sistema conectaba bien a la base de datos, ahora que lo subo al host, no me conecta, ¿Que corneta pasa?, me tira este error:

Warning: mysql_connect() [function.mysql-connect]: Access denied for user 'root'@'localhost' (using password: YES) in /home/a6393799/public_html/registro/registra.php on line 67

Free Web Hosting
Ha fallado la conexión: Access denied for user 'root'@'localhost' (using password: YES)

Estoy usando 000webhost!

Gracias.!
  #10 (permalink)  
Antiguo 25/12/2012, 16:35
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 9 años, 7 meses
Puntos: 461
Respuesta: Problema registro de usuario.

Cita:
Iniciado por memoadian Ver Mensaje
Yo una vez instalé eso, y el trabajo que me costó no valió la pena, si tienes un server de pago de 6 USD te ahorras el tener que instalar algo inútil, solo para hacer pruebas.
en serio?? ese tipo de librerías son simples de instalar y te dan mucha facilidad para hacer cosas como adjuntar archivos, mandar html, en la documentación esta muy bien explicado el como usarlas

Con respecto a este error
Cita:
Warning: mysql_connect() [function.mysql-connect]: Access denied for user 'root'@'localhost' (using password: YES) in /home/a6393799/public_html/registro/registra.php on line 67
esta claro los datos que estas pasando de la conexión no es correcta, verifica bien el host, user y password de mysql que estas pasando a mysql_connect, saludos
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #11 (permalink)  
Antiguo 25/12/2012, 18:33
 
Fecha de Ingreso: octubre-2012
Mensajes: 29
Antigüedad: 7 años, 2 meses
Puntos: 0
Respuesta: Problema registro de usuario.

Cita:
Iniciado por carlos_belisario Ver Mensaje
esta claro los datos que estas pasando de la conexión no es correcta, verifica bien el host, user y password de mysql que estas pasando a mysql_connect, saludos
Nono, pero vos sabes que cuando lo pruebo desde localhost anda todo bien la base de datos, pero cuando lo subo al host(000webhost) no me quiere conectar, yo lo tengo asi:

Código PHP:
$conexion mysql_connect("localhost""root""xxxx") or die ('Ha fallado la conexión: '.mysql_error()); 
Bueno la password de mas esta decir que es la correcta, ya que con esa entro a localhost y me entra bién...


Gracias!
  #12 (permalink)  
Antiguo 25/12/2012, 19:14
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 9 años, 7 meses
Puntos: 461
Respuesta: Problema registro de usuario.

cuando lo subes a un host los parámetros cambian, ya que el host ya no es localhost (que era tu maquina) sino el hosting que aloja tu código, igual en el host debes de crear tu base de datos, tu usuario y darle una contraseña, saludos
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #13 (permalink)  
Antiguo 25/12/2012, 22:11
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 10 años, 5 meses
Puntos: 641
Respuesta: Problema registro de usuario.

Además por lo general el usuario también cambia, ya no es root. Si es que no lo haz cambiado.

Fijate bien en los datos de conexión, en algunos hostings si es localhost pero no en todos.
  #14 (permalink)  
Antiguo 26/12/2012, 01:47
Avatar de ilen  
Fecha de Ingreso: febrero-2009
Mensajes: 125
Antigüedad: 10 años, 9 meses
Puntos: 2
Respuesta: Problema registro de usuario.

Contrata un Host, te recomiendo de HOSTGATOR, usa como ip 'localhost' es decir no tiene que cambiar nada en tu codigo de aplicacion solamente el de la conexion: el nombre de base, usuario, y clave... el resto te deberia correr con normalidad.

Etiquetas: html, mysql, registro, sql, variables, usuarios
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 06:04.