Foros del Web » Programando para Internet » PHP »

PHP OO Enviar mail de confirmación

Estas en el tema de Enviar mail de confirmación en el foro de PHP en Foros del Web. Hola forosdelwebmaniacos. Necesito vuestra ayuda, quiero hacer que cuando un usuario se registre, automaticamente le envie un correo con una confirmación del registro. De momento, ...
  #1 (permalink)  
Antiguo 20/03/2014, 15:26
 
Fecha de Ingreso: marzo-2014
Mensajes: 168
Antigüedad: 10 años, 1 mes
Puntos: 2
Pregunta Enviar mail de confirmación

Hola forosdelwebmaniacos. Necesito vuestra ayuda, quiero hacer que cuando un usuario se registre, automaticamente le envie un correo con una confirmación del registro.

De momento, tengo este código de mail.php:

Código PHP:
<?php
require_once('./config/funciones.php');
conectar('localhost''root''123456''ofserker');

$usuario $_POST['usernamesignup']; 
$correo $_POST['emailsignup']; 
//... 

//<-- Tus rutinas para validar los datos, si están completos etc... 

if(empty($usuario)){ 
    echo 
"Debes poner algo como usuario"
    exit; 


//--> 

$aleatorio uniqid(); //Genera un id único para identificar la cuenta a traves del correo. 
$contrasena rand(19999999); //Devuelve un número aleatorio entre los dos rangos. Lo usuaremos como 
                                //Contraseña temporal. 
                                 
$sql "Insert Into users (user, pass, mail, code, active) Values ('$usuario', '$contrasena', '$correo', '$aleatorio', 0)"

//Tus rutinas para insertar en la base de datos. 

$mensaje "Registro en tuweb.com\n\n"
$mensaje .= "Estos son tus datos de registro:\n"
$mensaje .= "Usuario: $usuario.\n"
$mensaje .= "Contraseña: $contrasena.\n\n"
$mensaje .= "Debes activar tu cuenta pulsando este enlace: http://www.ofserker.netai.net/activacion.php?id=$aleatorio"

$asunto "Activación de tu cuenta en ofserker.netai.net"

if(
mail($correo,$asunto,$mensaje)){ 
   
echo 
" Se ha enviado un mensaje a tu correo electronico con el código de activación"
}else{ 
    echo 
"Ha ocurrido un error y no se puede enviar el correo"


?>
Lo malo, es que en el localhost, cuando registro a alguien, no sale un código al azar. Yo creo que es culpa de la db. Bueno no me enrollo más y aqui va la foto:



Espero atentamente vuestras respuestas:
-OfSerker
  #2 (permalink)  
Antiguo 20/03/2014, 16:00
Avatar de malakian  
Fecha de Ingreso: septiembre-2010
Ubicación: $malakian->Colombia();
Mensajes: 469
Antigüedad: 13 años, 7 meses
Puntos: 45
Respuesta: Enviar mail de confirmación

Que tiene que ver su problema con enviar un mail de confirmación???


aparte de eso, no está ejecutando en ningún lado el Insert... no entiendo bien el problema
__________________
Guitar Loco, Desarrollador Web PHP
Sigueme: @jose1x
  #3 (permalink)  
Antiguo 20/03/2014, 16:03
 
Fecha de Ingreso: marzo-2014
Mensajes: 168
Antigüedad: 10 años, 1 mes
Puntos: 2
Respuesta: Enviar mail de confirmación

El problema es que no crea un codigo al azar. Porque no tengo bien configurada la DB. Tambien, el register.php llama al mail.php, yo solo te he puesto el mail.php porque el register.php np te sirviria para nada

Ayudadme porfavor, atebtamente:
-OfSerker
  #4 (permalink)  
Antiguo 20/03/2014, 16:11
 
Fecha de Ingreso: junio-2006
Ubicación: Antofagasta
Mensajes: 216
Antigüedad: 17 años, 10 meses
Puntos: 7
Respuesta: Enviar mail de confirmación

el problema no es de la base de datos ni de su configuracion.

prueba haciendo un echo $contrasena;

debería salir el numero aleatorio.

tambien prueba colocandole un valor cualquiera a la variable $contrasena para probar si sale o no en el mensaje ya que por ahi puede ir el problema, en la construccion del cuerpo del mensaje
  #5 (permalink)  
Antiguo 20/03/2014, 16:17
 
Fecha de Ingreso: marzo-2014
Mensajes: 168
Antigüedad: 10 años, 1 mes
Puntos: 2
Respuesta: Enviar mail de confirmación

Tambien, el problema que tengo es que no me envia el email, no se que poner en la db de codigo y activado y el mail.php, pues no envia correos o no se que le pasa. Al register.php, cuando hago el if y pongo echo 'Usuario registrado con exito';
Le doy a include (./mail.php); (el codigo sin errores esto lo hago rapido
  #6 (permalink)  
Antiguo 20/03/2014, 16:19
 
Fecha de Ingreso: junio-2006
Ubicación: Antofagasta
Mensajes: 216
Antigüedad: 17 años, 10 meses
Puntos: 7
Respuesta: Enviar mail de confirmación

anda por parte mejor... primero asegurate que se guarden todos los campos en la base de datos... ocurre eso o no se guarda nada?? quefa algun campo sin dato??
  #7 (permalink)  
Antiguo 20/03/2014, 16:21
 
Fecha de Ingreso: marzo-2014
Mensajes: 168
Antigüedad: 10 años, 1 mes
Puntos: 2
Respuesta: Enviar mail de confirmación

Mira, yo voy a implantar el servicio de mail.php despues de registrarte. Todos los campos me van bien menos el codigo i la activacion ya que los he añadido y el sql que he sacado lo he echo yo, no se si esta bien.
  #8 (permalink)  
Antiguo 20/03/2014, 16:24
 
Fecha de Ingreso: junio-2006
Ubicación: Antofagasta
Mensajes: 216
Antigüedad: 17 años, 10 meses
Puntos: 7
Respuesta: Enviar mail de confirmación

los datos se gaurdan correctamente en la base de datos?? todos incluido la claveatoria? ale
  #9 (permalink)  
Antiguo 20/03/2014, 16:26
 
Fecha de Ingreso: marzo-2014
Mensajes: 168
Antigüedad: 10 años, 1 mes
Puntos: 2
Respuesta: Enviar mail de confirmación

Te digo que directamente la clave aleatoria (codigo) no se guarda. El usuario con el que te registras, la pass y el mail si.

Atentamente: OfSerker
  #10 (permalink)  
Antiguo 20/03/2014, 16:31
 
Fecha de Ingreso: junio-2006
Ubicación: Antofagasta
Mensajes: 216
Antigüedad: 17 años, 10 meses
Puntos: 7
Respuesta: Enviar mail de confirmación

revisa la sentencia sql que ocupas para insertar los datos, puedes colocar despues, en la base de datos veo mas campos de los que tienes en tu insert, veo un IP entre medio
  #11 (permalink)  
Antiguo 20/03/2014, 16:34
 
Fecha de Ingreso: junio-2006
Ubicación: Antofagasta
Mensajes: 216
Antigüedad: 17 años, 10 meses
Puntos: 7
Respuesta: Enviar mail de confirmación

tienes:

Código PHP:
...
$sql "Insert Into users (user, pass, mail, code, active) Values ('$usuario', '$contrasena', '$correo', '$aleatorio', 0)";  
... 
prueba colocando:

Código PHP:
...
$sql "Insert Into users (user, pass, mail, ip, code, active) Values ('$usuario', '$contrasena', '$correo', '$ip', '$aleatorio', 0)";  
... 
la variable $ip me imagino que la estas obteniendo de algun lado
  #12 (permalink)  
Antiguo 20/03/2014, 16:38
 
Fecha de Ingreso: marzo-2014
Mensajes: 168
Antigüedad: 10 años, 1 mes
Puntos: 2
Respuesta: Enviar mail de confirmación

Gracias por ayudarme, pero la ip ya la saco en el register.php
  #13 (permalink)  
Antiguo 20/03/2014, 16:41
 
Fecha de Ingreso: junio-2006
Ubicación: Antofagasta
Mensajes: 216
Antigüedad: 17 años, 10 meses
Puntos: 7
Respuesta: Enviar mail de confirmación

pero esa ip la debes guardar en la base de datos, por eso debes construir la sentencia completa del insert
  #14 (permalink)  
Antiguo 20/03/2014, 16:50
 
Fecha de Ingreso: marzo-2014
Mensajes: 168
Antigüedad: 10 años, 1 mes
Puntos: 2
Respuesta: Enviar mail de confirmación

La ip da igual que se guarde o no, no sirve para nada...

Bueno, gracias por colaborar. Me voy a la cama en mi pais sob las 0:00. Dew
  #15 (permalink)  
Antiguo 20/03/2014, 16:55
 
Fecha de Ingreso: junio-2006
Ubicación: Antofagasta
Mensajes: 216
Antigüedad: 17 años, 10 meses
Puntos: 7
Respuesta: Enviar mail de confirmación

es que el problema lo tienes en el insert...

prueba como te dje y antes del $sql.... agrega a modo de pueba $ip="000.000.000.000";

y el sql asi:

$sql = "Insert Into users (user, pass, mail, ip, code, active) Values ('$usuario', '$contrasena', '$correo', '$ip', '$aleatorio', 0)";
  #16 (permalink)  
Antiguo 21/03/2014, 06:18
 
Fecha de Ingreso: marzo-2014
Mensajes: 168
Antigüedad: 10 años, 1 mes
Puntos: 2
Respuesta: Enviar mail de confirmación

Ya probare esta tarde. Pero te recuerdo también que sale el ech 'Mail enviado correctamente' y voy a la bandeja del gmail y no lo recibo. WTF? Atentamente, OfSerker

Etiquetas: html, mysql, registro, select, sql
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:55.