ik heb de gebruikersnamen met base64_encode(); in de db staan.
nu heb ik bij mijn pm systeem een controle of de gebruikersnaam bestaat.

<?
$select = "SELECT * FROM leden WHERE user = '" . base64_encode($naar) . "'";
$query = mysql_query($select);
$bestaat = mysql_num_rows($query);
?>

ik heb een kleine test gerund:

Erik met base64_encode = RXJpaw==
erik met base64_encode = ZXJpaw==

als je de naam dus anders invult dan dat het in de db staat krijg je een foutmelding.
weet iemand een simpele, snelle manier om dit op te lossen?

Mvg,

Erik
eerst alles converteren naar kleine letters met strtolower?

Edit:
Bestaande gebruikersnamen haal je op uit de database, je decrypt ze en vervolgens doe je strtolower (of strtoupper, net wat je wil) en dan sla je ze weer encrypted op. Bij een registratieformulier doe je dat ook op die wijze, waarschijnlijk krijg je dan iets van base64_encode(strtolower($username)).

Kortom: overal eerst strtolower voordat je encode. Het is op die manier ook makkelijker te controleren of een gebruikersnaam meer dan twee keer voorkomt in de database, omdat je op hash kan vergelijken in plaats van eerst te moeten decrypten en kijken of een naam, ongeacht hoofdletter/kleine letter, al voorkomt in de database.
@ kasper.

dat betekend dan dat als een gebruiker zich aanmeld als KasPeR zijn naam in de db wordt gezet als kasper.
of bedoel je dit niet?

Mvg,

Erik
Ja, zo wordt het inderdaad opgeslagen. De gebruiker hoeft daar echter niet veel van te merken, omdat je pas strtolower doet nadat de gebruiker zijn gegevens heeft ingevoerd.

Alleen als je de gebruikersnaam ergens wilt laten zien op je site kan je misschien een extra veldje in de database aanmaken waarin de originele gebruikersnaam wordt opgeslagen.
Extra veldje is dan natuurlijk onzin, kan je beter niet encoden, omdat de veiligheid toch wel weg is als je hem ook nog gewoon opslaat.

Sowieso vind ik usernamen coderen niet echt logisch. Erik leg eens uit :)
ik weet het ook niet :P
dacht het te doen voor de veiligheid.
ik ga het weer helemaal terug veranderen
Wat is er veilig aan een gecodeerde username :) Zeker als je hem base64 codeert...
Maar echt een veiligheidslek zie ik niet om mijn usernames te gaan coderen :S

Reageren