Hmm, kijk, eerder gebruikte ik dat ook nooit.. en had ik nooit last van hoofdlettergevoeligheid, ik vind het ook niet echt prettig om te gebruiken. Zoals ik het nu doe vind ik het prima, alleen snap ik niet waarom hij nu de USERNAME ook nog eens hoofdlettergevoelig neemt :S.
Euh, username- en passwordchecks zouden toch hoofdlettergevoelig moeten zijn? Sla ze BINARY op, dan zijn alle vergelijkingen in je query ook case-sensitive.
Als je een string vergelijkt met een kolomtype dat case-sensitive is, dan is de vergelijking automatisch case-sensitive.
Nee, dat wilde ik juist niet. omdat ik dat nooit gebruikte.. en dat niet fijn vind, maar nu doet hij opeens de Username ook hoofdlettergevoelig.. maar niet tijdens het inserten, tijdens het inloggen..
Wat je kan doen, het is wel omslachtig; bij het ophalen van de users uit je database kan je strtolower(); om de username gooien, hetzelfde doe je bij de input en dan kan het wel.
De manier die BigBug aandraagd is inderdaad de manier om de hoofdlettergevoeligheid te omzeilen. Dit komt namelijk doordat strcmp de 2 strings die vergeleken moeten worden van elkaar aftrekt (elke letter heeft namelijk een waarde). Zo heeft de "A" als waarde 65 en "a" 97. Als je dus de 2 strings "abcde" en "Abcde" met elkaar vergelijkt, is er een verschil van 32 (plus of min, ligt aan de volgorde in strcmp) en zijn de strings dus niet aan elkaar gelijk.
Op deze manier werkt de strcmp in C in ieder geval. Ik neem aan dat die in PHP er niet veel van zal verschillen...
Ps. voor de duidelijkheid: als de 2 strings aan elkaar gelijk zijn, moet de uitkomst van strcmp dus 0 zijn, dus " strcmp(..,..) == 0 " geeft aan dat ze WEL gelijk aan elkaar zijn, wordt blijkbaar nogal eens verward ...
Edit2: Sorry ik had inderdaad niet naar jouw stuk code gekeken, maar omdat ik in een van de reacties het verhaal over strcmp zag, dacht ik dat die er wel in zou zitten. Maar als ik naar jouw code kijk, lijkt het mij heel logisch dat het hoofdlettergevoelig is, dus misschien moet je even naar je oude functie kijken. Misschien dat er daar een manier staat om het hoofdletterongevoelig te maken.
kijk: normaal had ik dit probleem nooit, ik gebruik een nieuwe functie voor de username en password en een nieuwe login.php en BAM kheb opeens hoofdlettergevoelige username.. wat ik niet wil.
heeft iemand uberhaupt wel naar mijn index.php gekeken!?
edit: @ hierboven, hoezo is het logisch dat het hoofdlettergevoelig is?
Het lijkt mij logisch omdat ik vlak van tevoren had gekeken of het iets uitmaakte bij een normale query (geen bijzondere dingen) en daar maakte het wel iets uit, dus dan lijkt het mij logisch dat het bij jouw code ook zo is ...
Erm, ligt het niet gewoon aan waar ik kijk of het dezelfde username en passwords zijn van de database? OMG, niemand die me kan helpen:P en dit lijkt me toch echt wel simpel..