Login formulář ignoruje háčky a čárky

martinzi
Člen | 6
+
0
-

Zdravím,

řeším aktuálně problém s login formulářem. Formulář je plně funkční. V databázi mám username – martin. Pokud tedy zadám jako uživatelské jméno martin, vše funguje. Pokud ale zadám Martin / maRtIn nebo třeba mártin, přihlásím se i tak. Zjistil jsem ale, že když zadám mařtin, už chybu rozpozná a nepřihlásí mě. Můj cíl je tedy přihlásit jen uživatele, který zadá martin.

Stává se mi to na více projektech, takže hádám, že tento problém má každý.

Předem děkuji všem.

David Matějka
Moderator | 6445
+
+3
-

Ahoj, předpokládám, že používáš MySQL. Tam záleží, jaké collation je u sloupce nastaveno. To určuje, jak se stringy porovnávají a řadí. Zda se bere ohled na velikost písmen, háčky a čárky apod. Pokud chceš, aby „martin“ bylo z pohledu collation shodné s „Mártin“, tak tam budeš mít třeba utf8mb4_czech_ci, případně obecné utf8mb4_general_ci nebo utf8mb4_unicode_ci. Pokud chceš, aby to porovnávalo jako sekvenci bajtů (právě v tvém případě s username), použij utf8mb4_bin

Více najdeš v dokumentaci https://dev.mysql.com/…charset.html