Wat vinden jullie de beste manier om een bezoeker van je site een nieuw wachtwoord te geven?
Moeten ze de gebruikersnaam en het email adres precies goed invullen, of kiezen tussen gebruikersnaam en email adres? Of iets anders? Een geheime vraag en antwoord?
Voor het idee had ik al een soort pseudo-code of zoiets gemaakt:
<?php
//wachtwoordvergeten.php
if (niet op post geklikt)
{
?>
<!-- formulier -->
<?php
}
else
{
//haal emailadres op van gebruiker
//zet random-code in een variabele: $random
//zet $random in een veld in de DB (bij betreffende user)
//stuur email met $random naar betreff user
//niks
}
//wachtwoordvergetencontrole.php
if (!empty($_GET['code']))
{
//selecteer email van user waar code is $_GET['code']
//stuur email naar user met nieuwe random code
//zet md5(die random code) in de database als wachtwoord
//user heeft nu nieuw wachtwoord
}
else
{
echo 'geen code ontvangen. klik <a>hier</a> om code op te laten sturen';
}
?>
En als je dan je gebruikersnaam bent vergeten, zoals Michiel Haverlag al zegt? En als je geen nieuwe user kan maken omdat dat e-mail adres al een user heeft?
Gebruikersnaam en emailadres. Dan een link sturen naar het emailadres waar men een nieuw password kan opgeven.
Als het goed is, heb je maar 1 user per e-mailadres, het opgeven van het e-mail adres zal dan voldoende zijn, omdat alleen de user dan in zijn mail kan komen, om z'n wachtwoord te zien.
In de mail kan je dan bijv het username meesturen.
[quote='SanThe schreef op 13.11.2006 16:15']Gebruikersnaam en emailadres. Dan een link sturen naar het emailadres waar men een nieuw password kan opgeven.
Als het goed is, heb je maar 1 user per e-mailadres, het opgeven van het e-mail adres zal dan voldoende zijn, omdat alleen de user dan in zijn mail kan komen, om z'n wachtwoord te zien.
In de mail kan je dan bijv het username meesturen.[/quote]
Maar een emailadres is vaak bij anderen ook bekend. Dus om te voorkomen dat 'nare mensen' er mee kunnen rommelen vind ik dat ook de gebruikersnaam moet worden opgegeven. Dus puur ter controle. Weet je die ook niet meer, neem dat contact op met de beheerder.
In ieder geval niet het oude wachtwoord meer geven, maar een nieuw wachtwoord dat door een script wordt aangemaakt of dat je de bezoeker zelf een nieuw wachtwoord laat maken. Verder is een geheime vraag ook verstandig; mocht iemand in een mailbox komen, dan heeft hij alsnog het antwoord op de vraag nodig om een nieuw wachtwoord aan te kunnen vragen.
Je zou ook iets met het ip-adres kunnen doen, of bijvoorbeeld gegevens opslaan over de aanvraag en wijziging van een wachtwoord: vanaf welk adres werd het gedaan, op welke datum en tijd etc. Krijg je dan later vragen over dat een wachtwoord zou zijn gewijzigd door iemand anders, dan kan je hem vragen wanneer hij volgens hem voor het laatst heeft ingelogd en al dan niet besluiten een nieuw wachtwoord in te stellen.
- Gebruikersnaam opgeven
- Je krijgt een mailtje met een link (met een code erin)
- Op die pagina wordt het nieuwe wachtwoord ingesteld en krijg je het te zien
user: email adres opgeven
scrip: email sturen met code
user: naar link gaan .php?code={code-via-email}
scrip: stuur email naar persoon met nieuw wachtwoord