Lo que me gusta hacer es:
-
Genere una ID única y aleatoria en el proceso de registro
-
Guarde la ID junto con la dirección de correo electrónico, un campo "confirmado" (predeterminado:"no") y cualquier dato adicional en una tabla de base de datos
-
Envíe el correo electrónico con una URL que apunte a activar la identificación única (por ejemplo,
domain.com/activate.php?id=102939505595
-
La página de activación comprueba si existe la clave única y cambia el
confirmed
campo ayes
(o1
o lo que sea). -
Adicionalmente y opcionalmente, guarde la fecha/hora de confirmación, la dirección IP y el agente de usuario.