Yo lo haria asi:
En la tabla donde guardas los usuarios registrados, supongamos que se llama
users pones un campo extra llamado
validado. Este campo podria ser de tipo boolean, y tener false por default, es decir que cada nuevo user se creara en la bb.dd como
no validado.
Bien, ahora necesitarias crear otra tabla, por ejemplo
codigos_de_validacion. Esta tabla podria tenes 2 campos: uno llamado ID, que seria donde guardas el ID del usuario en la tabla
users. Y el otro campo seria el codigo de validacion, que seria generado aleatoriamente en el momento en que el usuario se registra.
El proceso seria asi:
1. Cuando el usarior termina de completar el formulario de registro y le da al boton, debes guardar todos sus datos en la tabla
users, ademas del campo
validado como FALSE. Y tambien cargar en la tabla
codigos_de_validacion el id de dicho user y el codigo generado de activacion.
2. una vez hecho esto, le mandas un mail con la funcion
mail() de php (o usando la clase phpmailer o lo que quieras). Dicho mail podria ser un link a un script en php que sea el que se encargue de validar el user. Lo que haria dicho script seria buscar en la tabla
codigos_de_validacion el registro cuyo campo
codigo sea igual al proporcionado en el mail. Y recuperar el id de dicho user, luego con ese id se pasa a cambiar el campo
validado de la tabla
users a true, y fianlmente borrar el registro en la tabla de validaciones, asi no tenes problemas en el futuro.
Saludos.
PD: No soy bueno explicandome