Foros del Web » Programando para Internet » PHP »

Activacion de Cuenta por Mail

Estas en el tema de Activacion de Cuenta por Mail en el foro de PHP en Foros del Web. Hola como estan amigos del Foro: Les quiero hacer una consulta es la siguiente, Me pidieron hacer un sistema de suscripción por mail (sin login, ...
  #1 (permalink)  
Antiguo 27/12/2006, 08:44
 
Fecha de Ingreso: septiembre-2004
Ubicación: Cordoba
Mensajes: 70
Antigüedad: 19 años, 7 meses
Puntos: 0
Desacuerdo Activacion de Cuenta por Mail

Hola como estan amigos del Foro: Les quiero hacer una consulta es la siguiente,
Me pidieron hacer un sistema de suscripción por mail (sin login, ni pass) pero la suscripcion tiene que darse de alta a través del mail.
Ej: Yo entro a www.mipagina.com/suscripcion -> Lleno el formulario -> y los mando. Bueno ese formulario guarda todos los datos en la base. pero a la vez manda un mail al destinatario con un link activando la cuenta.
ej:
Código:
http://www.mipagina.com.ar/confirm.php?id=8542&secret=0d738e8f7f2713ee71e97yu4v94mjvf
Hasta alli va todo bien, Lo unico que no se hacer o no me doy cuenta es como activar la cuenta a través del mail. osea lo que hace el mambo por ej.
Igual tiene mandar el mail para desuscribirse.
Si alguien me puede guiar a darme cuenta de como hacerlo se lo agradezco.
Saludos
__________________
HACER LA GUERRA PARA DEFENDER LA PAZ, ES COMO HACER UNA ORGIA PARA DEFENDER LA VIRGINIDAD

Última edición por ELLUIFA; 27/12/2006 a las 08:52
  #2 (permalink)  
Antiguo 27/12/2006, 15:15
Avatar de hectorejch  
Fecha de Ingreso: junio-2005
Ubicación: Argentina
Mensajes: 172
Antigüedad: 18 años, 10 meses
Puntos: 2
Re: Activacion de Cuenta por Mail

Hola, la solución que se me ocurre es la siguiente:
-En tu BD, tendrías una tabla de usuarios que están en espera de la activación de su cuenta, con, logicamente, un nro de identificador unico. Lo que haría entonces es, un módulo en PHP que es el que activa ese usuario, ¿de que manera?....: bueno, este módulo, supongamos confirm.php, va a recibir como parametro de entrada, de forma encriptada, con lo cual tendrías que desencriptar dentro del módulo, el identificador del usuario que activa su cuenta, con lo que confirm.php busca en la tabla de usuarios pendientes, y da de alta este usuario en la tabla final de usuarios, y borra la entrada en la tabla "temporal".
Bien, entonces, cuando yo ingreso a tu sitio, y me registro, se crea mi usuario en la tabla "usuariosPendientes", en el cual se me asigna un id único, entonces vos pasas por un md5 el identificador (que va a ser el parametro de entrada al módulo) y el enlace para activar mi cuenta seria: www.sitio.com/confirm.php?id=idencriptado, y me lo mandas a mi correo, y listo.

Creo que funciona..... Contame despues
__________________
"El Reino de Dios no consiste en palabras, sino en poder"
  #3 (permalink)  
Antiguo 27/12/2006, 18:09
Avatar de urgido  
Fecha de Ingreso: febrero-2005
Mensajes: 2.351
Antigüedad: 19 años, 2 meses
Puntos: 25
Re: Activacion de Cuenta por Mail

se me ocurre algo mejor y seguro... una base don cuatro campos: email, key y confirmado.

Suponiendo que el usuario apenas se registra entonces tu ingresas los valores se la siguiente forma:

email = [email protected]
key= $num = rand(1000000000, 9999999999) // aqui va un numero aleatorio si kieres combinar numeros/letras debes usar una función como esta
confirmado = 0

mail("[email protected]", "Confirmación", $body, $headers);

¿que irá en $body?
bueno pues ahi es donde debes incluir tu mensaje, el hipervinculo de activación y la variable que haga referencia a la función rand() que he puesto arriba en este caso puede ser $key. en los headers pues ya los abes FROM: blablabla.

ejemplo:

Para activar tu cuenta da un click en el siguiente link:;
http://www.misitio.com/confirmar.php?email=$email&vkey=$key
lo que se transforma a
http://www.misitio.com/confirmar.php...key=2654128014

Ahora bien esto es como ya he dicho cuando el usuario apenas se ha suscrito, cuando al usuario ahora le toca como verificar el resultado y es el turno de $_GET...

en tu archivo confirmar.php irá algo parecido
$_GET[email]=$email;
$_GET[key]=$key;

consultamos
$consulta="select * from usuarios where email=$email and key=$key";
mysql_query($consulta);

if($consulta)
echo "Su cuenta ha sido confirmada";
mysql_query("update confirmar set confirmar=1 where email=$email and key=$key");
else
echo "Lo sentimos pero el email o la clave de confirmación no coinciden ó no existen.";

Ahora bien has aquí irá todo bien pero ¿que pasa si alguien duplica la cuenta de correo? ¿que pasa si no se confirma la cuenta en 24hrs? pues ese ya es tu trabajo, recuerda que el código lo hice "a mano alzada" debes modificarlo y ponerle las comillas, puede haber errores pero son lógicos.

Saludos
__________________
Hospedaje Web al mejor costo!
  #4 (permalink)  
Antiguo 28/12/2006, 18:16
 
Fecha de Ingreso: septiembre-2004
Ubicación: Cordoba
Mensajes: 70
Antigüedad: 19 años, 7 meses
Puntos: 0
Re: Activacion de Cuenta por Mail

Muchas gracias a dos!!! me aclararon mucho el panorama.
Necesita una guia de como empezar por los menos.
Voy a tener en cuanta las dos ideas.
Si alguien tiene otra idea mas o se le ocurre algo que lo postee ya que en la suma de ideas siempre sale algo desde ya muy agradecido
Saludos
__________________
HACER LA GUERRA PARA DEFENDER LA PAZ, ES COMO HACER UNA ORGIA PARA DEFENDER LA VIRGINIDAD
  #5 (permalink)  
Antiguo 26/04/2008, 09:45
 
Fecha de Ingreso: octubre-2004
Mensajes: 768
Antigüedad: 19 años, 6 meses
Puntos: 3
Re: Activacion de Cuenta por Mail

Hola a todos...

Retomo éste tema por que es lo que ando buscando. Urgido explica un procedimiento que, por mi escasa habilidad, necesitaria alguien que me explique como realizarlo... digamos un "paso a paso".

Se agradece mucho si alguien me puede ayudar u orientar mejor!!!

Saludos.-

Cita:
Iniciado por urgido Ver Mensaje
se me ocurre algo mejor y seguro... una base don cuatro campos: email, key y confirmado.

Suponiendo que el usuario apenas se registra entonces tu ingresas los valores se la siguiente forma:

email = [email protected]
key= $num = rand(1000000000, 9999999999) // aqui va un numero aleatorio si kieres combinar numeros/letras debes usar una función como esta
confirmado = 0

mail("[email protected]", "Confirmación", $body, $headers);

¿que irá en $body?
bueno pues ahi es donde debes incluir tu mensaje, el hipervinculo de activación y la variable que haga referencia a la función rand() que he puesto arriba en este caso puede ser $key. en los headers pues ya los abes FROM: blablabla.

ejemplo:

Para activar tu cuenta da un click en el siguiente link:;
http://www.misitio.com/confirmar.php?email=$email&vkey=$key
lo que se transforma a
http://www.misitio.com/confirmar.php...key=2654128014

Ahora bien esto es como ya he dicho cuando el usuario apenas se ha suscrito, cuando al usuario ahora le toca como verificar el resultado y es el turno de $_GET...

en tu archivo confirmar.php irá algo parecido
$_GET[email]=$email;
$_GET[key]=$key;

consultamos
$consulta="select * from usuarios where email=$email and key=$key";
mysql_query($consulta);

if($consulta)
echo "Su cuenta ha sido confirmada";
mysql_query("update confirmar set confirmar=1 where email=$email and key=$key");
else
echo "Lo sentimos pero el email o la clave de confirmación no coinciden ó no existen.";

Ahora bien has aquí irá todo bien pero ¿que pasa si alguien duplica la cuenta de correo? ¿que pasa si no se confirma la cuenta en 24hrs? pues ese ya es tu trabajo, recuerda que el código lo hice "a mano alzada" debes modificarlo y ponerle las comillas, puede haber errores pero son lógicos.

Saludos
  #6 (permalink)  
Antiguo 26/04/2008, 10:01
Avatar de Carlojas  
Fecha de Ingreso: junio-2007
Ubicación: Shikasta
Mensajes: 1.272
Antigüedad: 16 años, 10 meses
Puntos: 49
Re: Activacion de Cuenta por Mail

Mira este aporte creo que te puede servir

http://www.forosdelweb.com/f18/aport...e-mail-564126/


Saludos.
  #7 (permalink)  
Antiguo 26/04/2008, 10:13
 
Fecha de Ingreso: octubre-2004
Mensajes: 768
Antigüedad: 19 años, 6 meses
Puntos: 3
Re: Activacion de Cuenta por Mail

Pero... lo que yo necesito es como dice ahí "urgido", una suscripción por mail (sin login, ni pass) pero la suscripción tiene que darse de alta a través del mail.

Lo que pasa es que, para hacer lo que dice urgido, me tienen que guiar para armarlo sino no voy a poder.

Disculpas, no se si me explico bien.

Saludos.-
  #8 (permalink)  
Antiguo 26/04/2008, 10:17
Avatar de Carlojas  
Fecha de Ingreso: junio-2007
Ubicación: Shikasta
Mensajes: 1.272
Antigüedad: 16 años, 10 meses
Puntos: 49
Re: Activacion de Cuenta por Mail

Creo que si analizas bien el post te daras cuenta que puedes implementar lo que necesitas, solo es cuestión de que lo adaptes a tus necesidades.




Saludos.
  #9 (permalink)  
Antiguo 26/04/2008, 10:20
 
Fecha de Ingreso: octubre-2004
Mensajes: 768
Antigüedad: 19 años, 6 meses
Puntos: 3
Re: Activacion de Cuenta por Mail

Bien... veré que puedo sacar en limpio... no tengo mucha experiencia!!!

Muchas gracias Carlojas.

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.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:41.