I know its been ages since I replied to this, but been going through some other solutions at work and I think this would be possible.
Have a list of users, maybe making another table linked to the users with a table name of user_security or something.
Having a secret question and answer, if the one entered by the user matches whats in the database.
Create a hash in just a column of that, if a value exists in that column for that user, or better still make another table with reset_hash name, if a value exists for that user id, and its the same one generated and sent to the user.
Allow user to reset their password, if a hash doesnt exist, then dont allow them to.
Using the $_GET method on the processing page, from the users email.
This should work shouldnt it?
God I am getting so logical with this sort of stuff, would be able to create a botched job of this, like a rather ugly looking one, would someone be willing to examine and help me improve this, like in the sense of it being object orientated? Would be quite interesting to see your results, would this be better in the coding help part though?
I sometimes outdo myself in theory of applications now (sometimes I get stuck though), but I love the way PHP is making sense now, I truely appreciate all the help you people have given me!
Cheers and thanks for reading (oh I look forward to someones reply aswell),
Jeremy.