In mijn loginsysteem wordt blijkbaar geen onderscheid gemaakt tussen hoofd- en kleine letters.

Bvb. indien in de db 'PHP' is opgeslagen als passwoord, dan kan men inloggen met 'PHP', maar ook met 'php', 'Php', enz.

Hoe los ik dit op?
Blanche schreef op 22.01.2008 13:31
@ScripterHW: dat is niet nodig. Aan de SHA1 functie van MySQL heb je meer dan genoeg. De query die je bijvoorbeeld bij het inloggen gebruik zou deze kunnen zijn:
<?php
$sQuery = "
SELECT id
FROM users
WHERE gebruikersnaam = '".$sNaam."'
AND wachtwoord = SHA1('".$sWachtwoord."')
";
?>
Uiteraard heb je $sNaam en $sWachtwoord wel van tevoren beveiligd met mysql_real_escape_string().

@Luc: zorg dat de charsets van zowel je database als je html overeenkomen. Persoonlijk gebruik ik utf-8 voor mijn html paginas en utf8_unicode_ci in mijn MySQL database. Hiermee heb ik nog nooit problemen ondervonden...
maar SHA1 werkt maar in 1 richting dacht ik? Dus als je het passwoord daarmee opslaat en nadien wil je een email versturen, bvb met het 'vergeten' passwoord. Kan je het dan nog terug omzetten?
Nee, dat kan niet. Maar stuur bij een 'wachtwoord vergeten' functie dan ook nooit het oorspronkelijke wachtwoord terug.

Kies er bijvoorbeeld voor om een nieuw gegenereerd wachtwoord te sturen of een url naar een pagina waar een nieuw wachtwoord gekozen kan worden.

Reageren