While PHP
Ik heb een vraagje over while in php. || http://goo.gl/qPPEB ||
Als iemand zijn wachtwoord is vergeten op de bovenstaande site kan die gene een reset link aanvragen.
Reset link:
1. Een random getal word aangemaakt.
2. Het word achter mijn link geplakt http://www.------.nl/notation/reset/...p?activate=HET RANDOM GETAL
3. Als de user hier op klikt word zijn account geselecteerd doormiddel van Select * Where activate = $activate
Dit werkt allemaal maar nu heb ik een probleem.
Het is dan wel een kans van 1 op n miljoen maar het kan dus zijn dat er een keer dezelfde random key word gegenereerd.
Ik heb de randomcode nu alleen even op 1 of 2 gezet zodat ik kan zien of hij de error geeft.
Dit wil ik graag voorkomen en dat heb ik geprobeert doormiddel van deze code:
__________________________________________________________________________
// Kijken of key bestaat.
$count = 0;
$activationkey = rand(1,2);
$aantal = mysql_query("SELECT COUNT(n_activatekey) as numrecords FROM users WHERE n_activatekey = '$activationkey'");
$row = mysql_fetch_assoc($aantal);
while ($row['numrecords'] >= 1){
$activationkey = rand(1,2);
if ($count >= 100) {
header("Location: ../index_register.php");
$_SESSION['notation_error'] = $error_endlesskey;
break;
}
$aantal = mysql_query("SELECT COUNT(n_activatekey) as numrecords FROM users WHERE n_activatekey = '$activationkey'");
$row = mysql_fetch_assoc($aantal);
$count = $count + 1;
}
______________________________________________________________
Het probleem is dat deze code niet werkt. Hij zou een error moeten geven maar die error geeft hij niet als er twee dezelfde forget keys in de database komen.
Weet iemand wat ik fout heb gedaan?
Alvast bedankt,
Tijme
Waarom sla je niet en de key op en het user_id? Als je dan ook die userid meegeeft in de link weet je zeker dat een dubbele key geen probleem meer is. Helemaal als je ook nog de user_id een unieke waarde maakt in je database.
Bedankt!!!