Foros del Web » Programando para Internet » PHP »

¿Como genero un email de confirmacion de registro en php?

Estas en el tema de ¿Como genero un email de confirmacion de registro en php? en el foro de PHP en Foros del Web. Estimados como están, hace poco hice un post que ya resolví con el tema de como mostrar en php una u otra cosa segun el ...
  #1 (permalink)  
Antiguo 24/12/2009, 15:48
 
Fecha de Ingreso: septiembre-2008
Mensajes: 67
Antigüedad: 15 años, 7 meses
Puntos: 0
¿Como genero un email de confirmacion de registro en php?

Estimados como están, hace poco hice un post que ya resolví con el tema de como mostrar en php una u otra cosa segun el nivel del usuario en la tabla mysql s y s para todos los que aportaron aunque termine de descifrarlo yo mismo.
El Enlace Aqui http://www.forosdelweb.com/f18/niveles-acceso-php-session-usuario-764001/#post3216673

Ahora lo que necesito es crear la registracion, en realidad ya tengo la registracion hecha, pero el problema es que no puedo generar el email de confirmacion, si fueran tan amables de darme algún ejemplo les estaría agradecido.

FELIZ NAVIDAD PARA TODOS.....

Última edición por h3greed; 26/12/2009 a las 07:44
  #2 (permalink)  
Antiguo 24/12/2009, 18:44
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: ¿Como genero un email de confirmacion de registro en php?

No puedes generar el mail de confirmacion? muestra el codigo que tienes para ello y vamos tratando de ayudarte donde te quedaste.
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 25/12/2009, 04:20
 
Fecha de Ingreso: enero-2009
Mensajes: 434
Antigüedad: 15 años, 3 meses
Puntos: 5
Respuesta: ¿Como genero un email de confirmacion de registro en php?

Con un if, un else y la funcion SQL "UPDATE" , puedes conseguirlo facilmente.

Creas 2 formularios, "nombre" "email".

Abres un if, si los datos de los 2 campos ,corresponden a algunos de tu base de datos, haces un update a el pass de ese usuario, con una contraseña aleatoria, y a su vez el mismo boton enviara la nueva contraseña a el email de ese usuario.

Es bastante facil, espero que te haya quedado claro
  #4 (permalink)  
Antiguo 26/12/2009, 07:51
 
Fecha de Ingreso: septiembre-2008
Mensajes: 67
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: ¿Como genero un email de confirmacion de registro en php?

Cita:
Iniciado por Triby Ver Mensaje
No puedes generar el mail de confirmacion? muestra el codigo que tienes para ello y vamos tratando de ayudarte donde te quedaste.
Bueno no es que no puedo sino que no se como hacerlo

Aquí el codigo que valida los datos enviados en el form y los ingresa a la base mysql:
Código PHP:
<?
    
include("dbconexion.php");
    if (isset(
$_POST["usuario"])) {
    
$usuario $_POST["usuario"];
    
$pass1 $_POST["pass1"];
    
$pass2 $_POST["pass2"];
    
$email $_POST["email"];
    
$responsable $_POST["responsable"];
    
$telefono $_POST["telefono"];
    if(
$usuario==NULL|$pass1==NULL|$pass2==NULL|$email==NULL|$responsable==NULL|$telefono==NULL) {
    echo 
"un campo est&aacute; vacio.";
    }else{
    if(
$pass1!=$pass2) {
    echo 
"Las contrase&ntilde;as no coinciden";
    }else{
    
$checkuser mysql_query("SELECT usuario FROM usuarios WHERE usuario='$usuario'");
    
$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|$usuario_exist>0) {
    echo 
"EL nombre de usuario o la cuenta de correo estan ya en uso";
    }else{
    
$query "INSERT INTO usuarios (usuario, pass1, email, responsable, telefono) VALUES('$usuario','$pass1','$email','$responsable','$telefono')";
    
mysql_query($query) or die(mysql_error());
    echo 
"El usuario $usuario ha sido registrado de manera satisfactoria.";
    }
    }
    }
    }
    
?>
y aqui el form de donde sale
Código PHP:
<form action='registrarse.php' method='post'>
    <
div align="center">
      <
table width="368" border="0">
        <
tr>
          <
td width="221" bgcolor="#FFFFFF"><span class="Estilo6">Usuario</span></td>
          <
td width="137" bgcolor="#FFFFFF"><div align="right">
              <
input type="text" size="15" maxlength="25" name="usuario" />
          </
div></td>
        </
tr>
        <
tr>
          <
td bgcolor="#FFFFFF"><span class="Estilo6">Apellido y Nombre</span></td>
          <
td bgcolor="#FFFFFF"><div align="right">
              <
input type="text" size="15" maxlength="25" name="responsable" />
          </
div></td>
        </
tr>
        <
tr>
          <
td bgcolor="#FFFFFF"><span class="Estilo6">Tel&eacute;fono (opcional)</span></td>
          <
td bgcolor="#FFFFFF"><div align="right">
              <
input type="text" size="15" maxlength="25" name="telefono" />
          </
div></td>
        </
tr>
        <
tr>
          <
td bgcolor="#FFFFFF"><span class="Estilo6">Contrase&ntilde;a</span></td>
          <
td bgcolor="#FFFFFF"><div align="right">
              <
input type="password" size="15" maxlength="25" name="pass1" />
          </
div></td>
        </
tr>
        <
tr>
          <
td bgcolor="#FFFFFF"><span class="Estilo6">Repetir contrase&ntilde;a</span></td>
          <
td bgcolor="#FFFFFF"><div align="right">
              <
input type="password" size="15" maxlength="25" name="pass2" />
          </
div></td>
        </
tr>
        <
tr>
          <
td bgcolor="#FFFFFF"><span class="Estilo6">Email</span></td>
          <
td bgcolor="#FFFFFF"><div align="right">
              <
input type="text" size="15" maxlength="100" name="email" />
          </
div></td>
        </
tr>
        <
tr>
          <
td bgcolor="#FFFFFF">&nbsp;</td>
          <
td bgcolor="#FFFFFF"><label>
              <
div align="right"></div>
            </
label></td>
        </
tr>
        <
tr>
          <
td><span class="Estilo6"></span></td>
          <
td><div align="right">
              <
input type="submit" value="Registrate" />
          </
div></td>
        </
tr>
      </
table
que le tengo que agregar que le tengo que sacar como envio el mail y demas no he leido que hay que agregar dos campos ejemplo

validar= 1 validado 2 sin validar
y clave= unica generado con un random

ahora no se como hacerlo si alguien tiene un ejemplo que funcione para ver y asi aplicarlo a mi codigo se los agradeceria mucho gracias de antemano y felicidades
  #5 (permalink)  
Antiguo 26/12/2009, 15:52
 
Fecha de Ingreso: septiembre-2008
Mensajes: 67
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: ¿Como genero un email de confirmacion de registro en php?

bueno ya lo hice cambie algunas cosas pero nada en vez de mail con link de confirmacion se le envia la pass generada por un random

Código PHP:
  <?php
function gen_pass () {
$i=0;
$password="";
// Aqui colocamos el largo del password
$pw_largo 8;
// Colocamos el rango de caracteres ASCII para la creacion de el password
$desde_ascii 50// "2"
$hasta_ascii 122// "z"
// Aqui quitamos caracteres especiales
$no_usar = array (58,59,60,61,62,63,64,73,79,91,92,93,94,95,96,108111);
while (
$i $pw_largo) {
mt_srand ((double)microtime() * 1000000);
// limites aleatorios con tabla ASCII
$numero_aleat mt_rand ($desde_ascii$hasta_ascii);
if (!
in_array ($numero_aleat$no_usar)) {
$password $password chr($numero_aleat);
$i++;
}
}
return 
$password;

}
// Y aqui ejecutamos la funcion y la guardamos en $p_generado, luego simplemente la cargamos
$p_gen gen_pass();
?>
<?
   
include("dbconexion.php");
   if (isset(
$_POST["usuario"])) {
   
$usuario $_POST["usuario"];
   
$email $_POST["email"];
   
$responsable $_POST["responsable"];
   
$telefono $_POST["telefono"];
   if(
$usuario==NULL|$email==NULL|$responsable==NULL|$telefono==NULL) {
   echo 
"un campo est&aacute; vacio.";
   }else{
   
$usuario=str_replace(" ","",$usuario);
   
$email=str_replace(" ","",$email);
   
$usuario=str_replace("%20","",$usuario);// Quitar posiblesespacios escapados
   
$email=str_replace("%20","",$email);
   
$usuario=addslashes($usuario);// add slashes to stop hacking
   
$email=addslashes($email);
   
$minuser_len 6//username minimum length
   
if (strlen($usuario) < $minuser_len || strlen($email) < $minemail_len){
   echo 
"El usuario debe tener como mínimo 6 digitos";
   }else{
   
$checkuser mysql_query("SELECT usuario FROM usuarios WHERE usuario='$usuario'");
   
$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|$usuario_exist>0) {
   echo 
"EL nombre de usuario $usuario o la cuenta de correo $email estan ya en uso";
   }else{
   
$query "INSERT INTO usuarios (usuario, email, responsable, telefono, pass1) VALUES('$usuario','$email','$responsable','$telefono','$p_gen')";
   
mysql_query($query) or die(mysql_error());
   echo 
"El usuario $usuario se ha generado correctamente con la contraseña le estará llegando al correo brindado por usted";
   
$email $_POST['email']; 
   
$usuario $_POST['usuario'];
   
$asunto =    'Confirmacion de registro.'
   
$mensaje =   "El registro se ha realizado correctamente tu password es $p_gen"
   
$cabeceras 'From: [email protected]"\r\n" 
                
'Reply-To: [email protected]"\r\n" 
                
'X-Mailer: PHP/' phpversion(); 

   
mail($email$asunto$mensaje$cabeceras);  
    }
    }
    }
    }
    
?>
  #6 (permalink)  
Antiguo 26/12/2009, 21:46
Avatar de bioxido  
Fecha de Ingreso: diciembre-2008
Ubicación: $_SERVER['PHP_SELF']
Mensajes: 601
Antigüedad: 15 años, 5 meses
Puntos: 21
Respuesta: ¿Como genero un email de confirmacion de registro en php?

porque no, cuando se registra el usuario generas un numero random y lo guardas en una tabla de mysql, despues envias un email al usuario con el link por ejemplo http://www.paginaweb.com/confinrmaci...go=71387123123

en confirmacion.php obtenes el codigo por $_GET y lo comparas con el codigo de la DB, si el codigo esta bien, coinciden... bueno... y despues depende de como lo hayas echo, o modificas un valor en la DB de false (no confirmado) a true (confirmado) o como quieras.

Yo creeria que esa es la forma mas simple de hacerlo, y funcional.
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 16:04.