Foros del Web » Programando para Internet » PHP »

generar link para activar cuenta

Estas en el tema de generar link para activar cuenta en el foro de PHP en Foros del Web. Hola, tengo un problema como genero el link? para activar una cuenta se mas o menos lo que tengo que hacer pero para hacer el ...
  #1 (permalink)  
Antiguo 25/07/2007, 13:01
Avatar de malcolmim  
Fecha de Ingreso: abril-2007
Mensajes: 50
Antigüedad: 17 años
Puntos: 0
generar link para activar cuenta

Hola, tengo un problema como genero el link? para activar una cuenta
se mas o menos lo que tengo que hacer pero para hacer el link no lo se muy bien

tengo esto

Código PHP:
$sql='SELECT idusuario FROM USUARIOS ORDER BY idusuario DESC'
$rs=mysql_query($sql); 
list(
$ultimoId)=mysql_fetch_row($rs); 
$url='activado.php?id=$ultimoId&activo=N'
echo 
$url
supuesta mente $url; es el que genera el link pero no me sale alguien sabe como se hace o en que esty mal?

por que primero en cuanto grabo rescato el id del usuario ya que este la crea automaticamente al registrarce y despues como genero el link??
__________________
Malcolm in the middle
  #2 (permalink)  
Antiguo 25/07/2007, 13:13
Avatar de geq
geq
 
Fecha de Ingreso: agosto-2006
Ubicación: Rosario
Mensajes: 655
Antigüedad: 17 años, 8 meses
Puntos: 22
Re: generar link para activar cuenta

Hola ^^

En primer lugar te recomendaré no hacer eso para recuperar el último id, porque no es lo más eficiente ni seguro.. Existe la posibilidad de que te de el id de otro usuario.

Lo que puedes hacer para la activación es incluir un campo que haga de flag y diga si está activado o no (puede ser int, y valores 0=sin activar y 1=activado), y luego no permites el acceso q los que tengan esa columna igual a 0.

Luego, activado.php pondrá en 1 el campo de activado para el usuario que tenga el id indicado ^^

Si quieres complicarte un poco más: puedes hacer otra tabla idéntica, pero con dos campos más: que incluya un código de activación único, y fecha y hora.
Cuando un usuario se registra lo guardas allí, con un código que generas aleatoreamente, y es ese el que pasas en el link.
activar.php movería los datos de esa tabla a la tabla de usuarios para la fila que tenga el código de activación indicado, y siempre que tenga menos de, por ejemplo, 24 horas (para eso la fecha ^^)

Exitos.
  #3 (permalink)  
Antiguo 25/07/2007, 14:10
Avatar de malcolmim  
Fecha de Ingreso: abril-2007
Mensajes: 50
Antigüedad: 17 años
Puntos: 0
Re: generar link para activar cuenta

ok etsa bien ya cree un campo mas en la base de datos llamado activo este pone 0 al registrarce hasta que lo active dando clic al link
ahora bien como es que genero el link???

me podrias poner un ejemplo porfavor!
__________________
Malcolm in the middle
  #4 (permalink)  
Antiguo 25/07/2007, 14:21
Avatar de geq
geq
 
Fecha de Ingreso: agosto-2006
Ubicación: Rosario
Mensajes: 655
Antigüedad: 17 años, 8 meses
Puntos: 22
Re: generar link para activar cuenta

Mira, algo así

Código PHP:
$result mysql_query(...);// insertar el usuario a la base de datos en esta linea
$id mysql_insert_id();
$url="http://www.tuweb.com/activado.php?id=$id"
Y puedes luego enviar la url por email ^^

activado.php deberá poner en 1 el flag para $id
Código PHP:
$result mysql_query("UPDATE tu_tabla SET activo=1 WHERE idusuario='${_GET['id']}' LIMIT 1"); 
Pero insisto en que es mejor crear un código aleatorio o un hash, para que sea más dificil de adivinar que este simple número de id.

PD: agradece también a fransisco01 por recomendarme la función mysql_insert_id() para recomendartela a vos
xD

Exitos ^^
  #5 (permalink)  
Antiguo 25/07/2007, 14:24
 
Fecha de Ingreso: marzo-2007
Mensajes: 347
Antigüedad: 17 años, 1 mes
Puntos: 2
Re: generar link para activar cuenta

Yo, lo que ago, es pasar la id a md5, entonces ya es algo mas complicada.

Un saludo y gracias por los agradecimientos ^^.
  #6 (permalink)  
Antiguo 25/07/2007, 14:29
Avatar de malcolmim  
Fecha de Ingreso: abril-2007
Mensajes: 50
Antigüedad: 17 años
Puntos: 0
Re: generar link para activar cuenta

orale, bueno gracias a los dos a geq y a francisco. ya vere como ago complicado gracias!
__________________
Malcolm in the middle
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 00:59.