haber por eso te digo que leas de la funcion mail() para saber como usarla y de generar cadenas aleatorias por que en google hay miles de ejemplos de como generar una cadena aleatoria con php incluso en las FAQS de aqui me parece haberlo visto, mira ahi hay una funcion de ejemplo.
http://phpes.wordpress.com/2007/06/1...ena-aleatoria/
tanpoco te digo que no preguntes pero no se si yo soy malo enseñando o qeu pero mas claro que lo que te dijo Lanselot y como lo redije yo (por que fue casi lo mismo que escribio Lanselot pero lo trate de explicar un poco mas), no se como explicarlo
deberias analizar la teoria del funcionamiento y despues ponerte a programar
1.- Le pides al usuario el mail con que se registro
2.- creas una cadena aleatoria y la guardas en la base de datos ("codigo_seguridad")
3.- le mandas un mail con un link y la cadena aleatoria generada
4.- el usuario hace click en el link y lo manda a una pagina
5.- en la pagina se comprueba que la cadena coincide con la que esta en la BD
6.- si hay coincidencia le mandas un nuevo mail con una nueva clave creada al azar, y guardas la nueva clave en la BD reemplazando la anterior
7.- el lee el correo e inicia sesion con la nueva clave
8.- una vez iniciada la sesion puede cambiar la clave por una que recuerda facilmente
primero trata de entender eso y luego ves la manera mas adecuada de generar un codigo para cada paso.
mas claro no se si puedo ser, o sera que solo yo me entiendo :p
salu2