inloggen - Username niet hoofdlettergevoelig
ik had een vraagje,
Ik heb een redelijk goed lopende site, met inlog systeem. Alleen is dat systeem hoofdlettergevoelig. Nu wil ik dat de username bij het inloggen niet meer hoofdletter gevoelig is.
Hiervoor zijn een aantal opties:
A: Sta geen hoofdletters toe, en zet strolower() om de $_POST['username'] heen
Zou inderdaad het probleem verhelpen, maar in dit geval, geen optie
B: Sta wel hoofdletters toe bij registratie, en zet in de tabel 2 waardes, 1 gewoon de $_POST['username'] en een met strolower() eromheen. Bij het inloggen gebruik je die met strolower(), en op de rest van de site echo je gewoon die wel met hoofdletters
Gaat 'm ook niet worden ;)
C: gewoon met hoofdletters laten registreren, en maar 1 waarde in de tabel zetten, en vervolgens zoiets te doen:
$query="select * from users where LOWER(name) = '".strolower($_POST['username'])."'";
Deze optie zou ik graag zien.. maar hoe werkt hij?
Dus hoe moet ik optie c werkend krijgen? Ik snap dat even niet helemaal :)
xx
Dus wat is de karakterset die je gebruikt? Als die niet eindigt met 'cs' of 'bin', zou het al goed moeten gaan. Anders kan je overwegen de karakterset te veranderen voor die kolom, of om in je query iets a la WHERE name COLLATE utf8_general_ci = $username. Ik vraag me alleen af wat dat voor gevolgen dat heeft voor de snelheid. Een functie loslaten op een kolom wanneer je zoekt is meestal een slecht idee omdat MySQL dan niet meer een index kan gebruiken, en iedere row in je tabel door die functie moet halen en moet vergelijken.
(Wat de karakterset is kan je gemakkelijk zien aan je CREATE TABLE statement: probeer eens SHOW CREATE TABLE users)
Toch bedankt Jelmer rrrr :)
x