Foros del Web » Programando para Internet » PHP »

Al registrar nuevo usuario, enviarle MAIL a su cuenta con sus datos

Estas en el tema de Al registrar nuevo usuario, enviarle MAIL a su cuenta con sus datos en el foro de PHP en Foros del Web. Buenas Noches, Bueno, como lo dije en el titulo de post, yo tengo un sistema de registro de usuarios, y le quiero agregar que al ...
  #1 (permalink)  
Antiguo 24/03/2007, 18:22
Avatar de McBlink  
Fecha de Ingreso: noviembre-2006
Ubicación: $ARG->LaPampa()
Mensajes: 1.694
Antigüedad: 17 años, 5 meses
Puntos: 23
Al registrar nuevo usuario, enviarle MAIL a su cuenta con sus datos

Buenas Noches,
Bueno, como lo dije en el titulo de post, yo tengo un sistema de registro de usuarios, y le quiero agregar que al pulsar ENVIAR, ademas de darte de alta, te envie un mail con los datos del usuario.
yo tengo una idea de como se hace para enviar el mail tomando la direccion que deja en el textarea MAIL.
pero mi problema viene cuando tengo el form action='registra.php', osea que al enviar pasa por registrar.php que se encarga de darte de alta, pero si yo tengo un codigo para el mail (por ejemplo) enviamail.php como hago para que al pulsar ENVIAR pase por registra.php y te de de alta y asu vez tambien pase por enviamail.php y te envie el mail..
la otra forma que pense es poner el codigo de mail en el registra.php pero tuve problemas y me dio error... puede ser por la mala ubicacion..

aca dejo el codigo de registra.php por si hace falta:

Código PHP:
<?
include('config.php'); //HAGO AL CONECXION A LA BD


if(($_POST[nick] == ' ') or ($_POST[pass] == ' ') or ($_POST[pass1] == ' ') )
{
Header("Location: reg.php"); 
}else{


if(
$_POST[pass] != $_POST[pass1])
{
echo 
'Las passwords no son iguales';
}else{


$user stripslashes($_POST["nick"]);
$user strip_tags($user);
$pass stripslashes($_POST["pass"]);
$pass strip_tags($pass);

$usuarios=mysql_query("SELECT nick FROM user WHERE nick='$user' ");
if(
$user_ok=mysql_fetch_array($usuarios))
{
echo 
'El usuario ya esta registrado';
mysql_free_result($usuarios);
}else{

$email stripslashes($_POST["email"]);
$email strip_tags($email);
$pj stripslashes($_POST["pj"]);
$pj strip_tags($pj);

$rollo stripslashes($_POST["rollo"]);
$rollo strip_tags($rollo);
$rollo str_replace("\n\r","<br>",$rollo); 
$rollo str_replace("\r\n","<br>",$rollo);
$rollo str_replace("\n","<br>",$rollo);

$fecha time();
$level "2"

mysql_query("INSERT INTO user (nick,pass,email,fecha,level,rollo,pj) values ('$user','$pass','$email','$fecha','$level','$rollo','$pj') ");
echo 
'Usuario registrado con éxito.';
echo 
'redireccionando al Home';
echo 
'<meta http-equiv="Refresh" content="1;URL=login.php">'
}

}

}
?>
y este seria, mas o menos, porque no se si esta correcto.. el codigo para enviar el mail:

Código PHP:
<?
$remitente 
$_REQUEST["email"];
$mensaje $_REQUEST["comentarios"];

mail("[email protected]""Comentarios desde mi pagina"$mensaje"From: $remitente") or die ("Su mensaje no se envio.");

echo 
"<p>Hemos recibido la siguiente informaci&oacute;n:<p>";
echo 
$mensaje;
echo 
"<p><br><p>Muy pronto nos pondremos en contacto con usted.<p>";
?>
Bueno, creo que con eso alcanza.. xD
Saludos y gracias de antemano por la ayuda!
MC
  #2 (permalink)  
Antiguo 24/03/2007, 18:31
okram
Invitado
 
Mensajes: n/a
Puntos:
Re: Al registrar nuevo usuario, enviarle MAIL a su cuenta con sus datos

Lo que puedes hacer es guardar los datos de tu formulario en una variable de sesion (Manual de PHP sobre sesiones), para que se conserven y puedas ir a la pagina en la que envias el correo.

En registra.php agrega al inicio:
Código PHP:
//Inicias la sesión
session_name('sesion_site');
session_start(); 
y luego, despues de que has verificado que los datos del formulario son correctos:
Código PHP:
$_SESSION['formulario'] = $_POST
En la pagina enviamail.php pues simplemente llamas los datos de la sesión, algo así:
Código PHP:
//Inicias la sesión
session_name('sesion_site');
session_start();
 
$datos $_SESSION['formulario'];
unset(
$_SESSION['formulario']);
 
$remitente $datos["email"];
$mensaje $datos["comentarios"];
 
mail("[email protected]""Comentarios desde mi pagina"$mensaje"From: $remitente") or die ("Su mensaje no se envio.");
 
echo 
"<p>Hemos recibido la siguiente informaci&oacute;n:<p>";
echo 
$mensaje;
echo 
"<p><br><p>Muy pronto nos pondremos en contacto con usted.<p>"
?> 
Un saludo,

Última edición por okram; 24/03/2007 a las 18:32 Razón: Correcion en el codigo
  #3 (permalink)  
Antiguo 24/03/2007, 18:41
 
Fecha de Ingreso: abril-2006
Ubicación: Colombia
Mensajes: 648
Antigüedad: 18 años
Puntos: 3
Re: Al registrar nuevo usuario, enviarle MAIL a su cuenta con sus datos

Hola

Probaste poniendo dentro de registra.php el enviamail.php como include???? intenta eso, y revisa que las variables de enviamail que recibes esten con valores, bueno, espero te sirva, suerte.
  #4 (permalink)  
Antiguo 24/03/2007, 18:58
Avatar de McBlink  
Fecha de Ingreso: noviembre-2006
Ubicación: $ARG->LaPampa()
Mensajes: 1.694
Antigüedad: 17 años, 5 meses
Puntos: 23
Re: Al registrar nuevo usuario, enviarle MAIL a su cuenta con sus datos

Hola,
con respecto a la respuesta de okram, no se donde colocar la siguiente linea

[PHP]
$_SESSION['formulario'] = $_POST; ¨
[PHP]

y ahora pruebo con el include..
saludos! y gracias!
MC
  #5 (permalink)  
Antiguo 24/03/2007, 19:02
Avatar de McBlink  
Fecha de Ingreso: noviembre-2006
Ubicación: $ARG->LaPampa()
Mensajes: 1.694
Antigüedad: 17 años, 5 meses
Puntos: 23
Re: Al registrar nuevo usuario, enviarle MAIL a su cuenta con sus datos

No, poniendo el include no funciona.. calculo que la forma que andaria seria la primera que posteo okram, pero necesitaria que me ayudaran con ese paso posteado anteriormente por mi!
saludos!
MC
  #6 (permalink)  
Antiguo 24/03/2007, 19:10
okram
Invitado
 
Mensajes: n/a
Puntos:
Re: Al registrar nuevo usuario, enviarle MAIL a su cuenta con sus datos

Colocalo antes de:

Código PHP:
mysql_query("INSERT INTO user (nick,pass,email,fecha,level,rollo,pj) values ('$user','$pass','$email','$fecha','$level','$rollo','$pj') "); 

Un saludo,
  #7 (permalink)  
Antiguo 24/03/2007, 19:25
Avatar de McBlink  
Fecha de Ingreso: noviembre-2006
Ubicación: $ARG->LaPampa()
Mensajes: 1.694
Antigüedad: 17 años, 5 meses
Puntos: 23
Re: Al registrar nuevo usuario, enviarle MAIL a su cuenta con sus datos

Hola Okram,
gracias por tus respuestas, pero habra algun problema en el enviamail.php que no me lo manda?
saludos!!
MC
  #8 (permalink)  
Antiguo 25/03/2007, 07:36
okram
Invitado
 
Mensajes: n/a
Puntos:
Re: Al registrar nuevo usuario, enviarle MAIL a su cuenta con sus datos

Te manda algún mensaje de error??

Un saludo,
  #9 (permalink)  
Antiguo 25/03/2007, 09:27
Avatar de McBlink  
Fecha de Ingreso: noviembre-2006
Ubicación: $ARG->LaPampa()
Mensajes: 1.694
Antigüedad: 17 años, 5 meses
Puntos: 23
Re: Al registrar nuevo usuario, enviarle MAIL a su cuenta con sus datos

Buen dia,
no no manda nada, simplemente me pone el texto anterior diciendome que ha sido registrado con exito..
saludos!!

PD.: alguna otra idea/forma?
MC
  #10 (permalink)  
Antiguo 25/03/2007, 09:40
Avatar de McBlink  
Fecha de Ingreso: noviembre-2006
Ubicación: $ARG->LaPampa()
Mensajes: 1.694
Antigüedad: 17 años, 5 meses
Puntos: 23
Re: Al registrar nuevo usuario, enviarle MAIL a su cuenta con sus datos

Estuve pensado que si la config en el php.ini puede tener algo mal, yo no la toque para nada, la deje tal cual vino con el servidor...

[mail function]
; For Win32 only.
SMTP = localhost
smtp_port = 25

; For Win32 only.
;sendmail_from = ¿?¿?¿? ACA NO SE QUE PONER?

Bueno, Gracias!
un saludo!
  #11 (permalink)  
Antiguo 25/03/2007, 15:37
Avatar de McBlink  
Fecha de Ingreso: noviembre-2006
Ubicación: $ARG->LaPampa()
Mensajes: 1.694
Antigüedad: 17 años, 5 meses
Puntos: 23
Re: Al registrar nuevo usuario, enviarle MAIL a su cuenta con sus datos

Alguna otra idea para hacer esto??
saludos y gracias de antemano!
MC
  #12 (permalink)  
Antiguo 25/03/2007, 16:33
okram
Invitado
 
Mensajes: n/a
Puntos:
Re: Al registrar nuevo usuario, enviarle MAIL a su cuenta con sus datos

Para que funcione la funcion mail() debes tener un servidor SMTP instalado en tu servidor (valga la redundancia).

Lo más seguro es que no lo tengas. Pero puedes usar la clase phpmailer que te permite usar un servidor SMTP externo, como Yahoo, Hotpot, etc (Servidores de correo que te dan acceso a su servidor smtp). para poder enviar mails. Revisala y nos comentas...

Aquí tienes un artículo excelente que te enseñará a usar esta clase:

http://www.phpfreaks.com/tutorials/130/0.php

Un saludo,
  #13 (permalink)  
Antiguo 25/03/2007, 16:40
Avatar de McBlink  
Fecha de Ingreso: noviembre-2006
Ubicación: $ARG->LaPampa()
Mensajes: 1.694
Antigüedad: 17 años, 5 meses
Puntos: 23
Re: Al registrar nuevo usuario, enviarle MAIL a su cuenta con sus datos

Haber.. yo tengo instalado el XAMPP, que me dio muy buenos resultados..ahora que loe stoy viendo, aparece un directorio llamado SENDMAIL, lo abro y en el readme me da istrucciones de como instalar, ahjora mismo me estoy bajando un archivo necesario..
a lo que voy.. es que para configurarlo, tengo que hacerlo desde localhost o usar eso de yahoo (que no entedi bien, como es eso de SMTP externo)
Bueno. muchas gracias.. cuando instale estoe n el xampp aviso y me dicen..
saludos!
MC
__________________
Recuerda usar el highlight para mostrar código
mauricioblint.com
  #14 (permalink)  
Antiguo 26/03/2007, 01:39
Avatar de Pagonu50  
Fecha de Ingreso: marzo-2002
Ubicación: Barcelona
Mensajes: 25
Antigüedad: 22 años, 1 mes
Puntos: 0
Re: Al registrar nuevo usuario, enviarle MAIL a su cuenta con sus datos

Cita:
Lo más seguro es que no lo tengas. Pero puedes usar la clase phpmailer que te permite usar un servidor SMTP externo, como Yahoo, Hotpot, etc (Servidores de correo que te dan acceso a su servidor smtp). para poder enviar mails. Revisala y nos comentas...
Estoy con okram, usa phpmailer McBlink, te ahorraras quebraderos de cabeza! Es muy sencillo de usar y configurar.

Saludos.
  #15 (permalink)  
Antiguo 26/03/2007, 05:08
Avatar de McBlink  
Fecha de Ingreso: noviembre-2006
Ubicación: $ARG->LaPampa()
Mensajes: 1.694
Antigüedad: 17 años, 5 meses
Puntos: 23
Re: Al registrar nuevo usuario, enviarle MAIL a su cuenta con sus datos

ok, gracias!!
un saludo!!
__________________
Recuerda usar el highlight para mostrar código
mauricioblint.com
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 17:07.