Hey!
Ausgangslage:
Ich arbeite an einem Loginsystem. Es werden vom Benutzer Loginname sowie Passwort eingegeben und
mittels PHP verarbeitet und mithilfe von MySQL werden die Passwörter abgeglichen (dazwischen noch eine Verschlüsselung).
Ich möchte, dass der Benutzername EXAKT dem entsprechen soll, welcher auch in der Datenbank steht:
Hans != hans != hAnS usw. => Hans = Hans wäre die einzig gültige Möglichkeit. Dazu habe
ich in den Abfragen "BINARY" in der UTF8 kodierten und Latin1_german2_ci kollatierten Datenbank benutzt:
Bisherige Abfrage:
SELECT *
FROM benutzer
WHERE loginname LIKE BINARY 'Hans';
Klappt soweit gut.
Problem:
Sobald Umlaute in dem Benutzernamen vorkommen, klappt diese Frage nicht und gibt nichts mehr aus.
Wenn ich das "BINARY" weglasse, klappt die die Überprüfung auch mit Loginnamen welche Umlaute beinhalten, ABER dann wird wieder nicht auf die Groß- u. Kleinschreibung geachtet.
Was mache ich falsch?
Ausgangslage:
Ich arbeite an einem Loginsystem. Es werden vom Benutzer Loginname sowie Passwort eingegeben und
mittels PHP verarbeitet und mithilfe von MySQL werden die Passwörter abgeglichen (dazwischen noch eine Verschlüsselung).
Ich möchte, dass der Benutzername EXAKT dem entsprechen soll, welcher auch in der Datenbank steht:
Hans != hans != hAnS usw. => Hans = Hans wäre die einzig gültige Möglichkeit. Dazu habe
ich in den Abfragen "BINARY" in der UTF8 kodierten und Latin1_german2_ci kollatierten Datenbank benutzt:
Bisherige Abfrage:
SELECT *
FROM benutzer
WHERE loginname LIKE BINARY 'Hans';
Klappt soweit gut.
Problem:
Sobald Umlaute in dem Benutzernamen vorkommen, klappt diese Frage nicht und gibt nichts mehr aus.
Wenn ich das "BINARY" weglasse, klappt die die Überprüfung auch mit Loginnamen welche Umlaute beinhalten, ABER dann wird wieder nicht auf die Groß- u. Kleinschreibung geachtet.
Was mache ich falsch?