Foros del Web » Programando para Internet » PHP »

Confirmacion por Correo en Registro Php

Estas en el tema de Confirmacion por Correo en Registro Php en el foro de PHP en Foros del Web. Hola amigos expertos de foros del web, tengo una duda espero q me den mucha info. Tengo un registro de usuarios en php que se ...
  #1 (permalink)  
Antiguo 23/09/2005, 12:37
Avatar de jim3481  
Fecha de Ingreso: agosto-2004
Ubicación: EEUU
Mensajes: 198
Antigüedad: 19 años, 8 meses
Puntos: 0
Exclamación Confirmacion por Correo en Registro Php

Hola amigos expertos de foros del web, tengo una duda espero q me den mucha info.

Tengo un registro de usuarios en php que se conecta directamente con mi base de datos sql server 2000, funciona todo bien , pero quiero agregarle para q confirme el registro via correo, osea que cuando alguien se registre este le pida confirmacion por correo, aver si me dan una manito o algun link donde te explique los procedimientos.

Muchas Gracias
__________________
Así como es característica de los grandes pensadores decir mucho en pocas palabras, las mentes pequeñas se distinguen por valerse de muchas palabras para no decir nada. :arriba:

(Francois VI-Duque de la Rochefoulcauld)
  #2 (permalink)  
Antiguo 23/09/2005, 12:51
Avatar de jim3481  
Fecha de Ingreso: agosto-2004
Ubicación: EEUU
Mensajes: 198
Antigüedad: 19 años, 8 meses
Puntos: 0
Ah me olvidaba, el registro solo debe tener usuario, e-mail y codigo de confirmacion (con antisql inyection) jeje y que el password se lo envie a su correo (cualqier password por defecto ya yo depsues le coloco una web para q puedan cambiarse de passw)

Grax
__________________
Así como es característica de los grandes pensadores decir mucho en pocas palabras, las mentes pequeñas se distinguen por valerse de muchas palabras para no decir nada. :arriba:

(Francois VI-Duque de la Rochefoulcauld)
  #3 (permalink)  
Antiguo 23/09/2005, 15:49
 
Fecha de Ingreso: agosto-2005
Ubicación: Valencia
Mensajes: 76
Antigüedad: 18 años, 7 meses
Puntos: 1
Este código base te podría servir:

Código PHP:
<?php

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

//<-- 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 tabla (usuario, contrasena, correo, codigo, activo) 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.tuweb.com/activacion.php?id=$aleatorio";

$asunto "Activación de tu cuenta en tuweb.com";

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";
}

?>
Este código recoge y procesa los datos de tu usuario, le envia un correo de activación/validación con una contraseña temporal y un enlace para activar dicha cuenta.

Ahora deberás crear otro script que atienda la activación, capturando el código de la url y comprobandolo en la base de datos. si concuerda, le cambias el valor de la fila 'activo' a 1. Cada vez que haga login deberás comprobar usuario, contraseña y que la fila 'activo' valga 1 así sabrás que el usuario se registró y activo su cuenta correctamente.

PD: Recuerda que debes crear una fila llamada 'activo' en la tabla de usuarios, numérico.
__________________
Quien a buen árbol se arrima, buena sombra le cobija. :aplauso:

http://dbtrucos.com
  #4 (permalink)  
Antiguo 23/09/2005, 20:53
Avatar de jim3481  
Fecha de Ingreso: agosto-2004
Ubicación: EEUU
Mensajes: 198
Antigüedad: 19 años, 8 meses
Puntos: 0
Buena man , gracias, lo voy a probar, dime esa fila "activo" lo creo en el sql? en la tabla donde estan el id, pass, email etc de los usuarios?
__________________
Así como es característica de los grandes pensadores decir mucho en pocas palabras, las mentes pequeñas se distinguen por valerse de muchas palabras para no decir nada. :arriba:

(Francois VI-Duque de la Rochefoulcauld)
  #5 (permalink)  
Antiguo 23/09/2005, 21:25
Avatar de jim3481  
Fecha de Ingreso: agosto-2004
Ubicación: EEUU
Mensajes: 198
Antigüedad: 19 años, 8 meses
Puntos: 0
Exclamación

Esta es la tabla q cree en el sql (no se si estara bien)



amigo, lo estoy editando pero no se como hacer al archivo activacion.php a ver si me das una ultima manito
__________________
Así como es característica de los grandes pensadores decir mucho en pocas palabras, las mentes pequeñas se distinguen por valerse de muchas palabras para no decir nada. :arriba:

(Francois VI-Duque de la Rochefoulcauld)

Última edición por jim3481; 23/09/2005 a las 21:32
  #6 (permalink)  
Antiguo 24/09/2005, 03:17
Avatar de DvD AdN  
Fecha de Ingreso: mayo-2005
Ubicación: Frente al monitor
Mensajes: 610
Antigüedad: 18 años, 11 meses
Puntos: 0
Puedes basarte en esto: http://www.desarrolloweb.com/articul....php?manual=14

__________________
Keep f***ing learning
Ask for f***ing help.
Use f***ing spell check.
Think about all the f***ing possibilities.
  #7 (permalink)  
Antiguo 24/09/2005, 16:35
 
Fecha de Ingreso: febrero-2004
Ubicación: España. Madrid
Mensajes: 454
Antigüedad: 20 años, 1 mes
Puntos: 0
interesante sobre todo lo del "$aleatorio = uniqid(); //Genera un id único para identificar la cuenta a traves del correo. "

no conocia lo del uniqid.. es mas te iba a preguntar si no se repetian. pero ya veo que se basta en la hora actual en microsegundos
saludos
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 02:58.