MySQL Passwortabfrage

Kein Problem, aber eine theoretische Frage…
Habe anhand eines Loginsystems eine Erkenntnis gemacht. Der Nickname, der vom Formular übermittelt wird, ist nicht case-sensitive. Kann ich in allen Variationen schreiben. Das Passwort allerdings schon, obwohl ich das genau durch die selbe Abfrage schleife wie den Nicknamen. Nun frage ch mich, wie das eigentlich funktioniert, wird die Info vom Formular mitgeschickt? Und wie wird das dann wieder erkannt?

Mfg
Mgier

Kommt drauf an, in welchem Kontext du ihn betrachtest, bzw. wo du ihn wie vergleichst.

Stringvergleiche in PHP sind per Default case sensitive, es gibt aber auch Funktionen, mit denen du das explizit umgehen kannst.

MySQL vergleicht Feldinhalte abhängig von der Collation und ggf. vom Feldtyp.

Und wie sieht diese Abfrage aus, wo machst du sie, mit welchen Feldtypen und unter welcher Collation?

Ja, natürlich Nickname = text, Passwort = password. Und dass ganze mit einer WHERE Clausel. Mich hat das nur mal im Prinzip interessiert. Gibt es auch Befehle die das in der WHERE Clausel bewusst an/abschalten?

*Abfrage in etwa so

SELECT * FROM `accounts` WHERE `nickname` = '" . $_POST['nickname'] . "' && `pass` = '" . $_POST['password'] . "'" 

Feldtypen in der Datenbank …!

Ausserdem erwähnte ich explizit das Stichwort Collation - wieso keine Angabe, welche du da jeweils verwendest?

“Befehle” nicht, Operatoren aber schon.

Feldtypen: Mais, Weizen und Gerste.
Achja in der Datenbank VARCHAR :wink:
Kollation: Standarteinstellung vom Xampp-Paket: latin1_swedish_ci
Wie du sicher gemerkt hast, habe ich mich da noch nicht so tief hineingearbeitet, daher war mir der Begriff nicht auf der Stelle klar und ich hab mal erst ne’ Nacht darüber geschlafen.

Da du anscheinend begriffen hast, auf was ich hinaus will, würde ich mich über eine Antwort auf meine Frage freuen.

Vielen Dank,
Mgier

Und - informiert, wofür das _ci am Ende steht?

Eine passendere Collation für die jeweligen Felder zu wählen, wäre das vernünftigste.

Und wenn ich ein und diesselbe Tabelle für mehrere Abfragen mit jeweils verschiedenen case-sensitives brauche? Oder habe ich was falsch verstanden?

Collations lassen sich auf Spaltenebene einstellen.

Und was ist, wenn ich dieselbe Spalte einmal case-sensitive und einmal nicht abfrage?

Hab mal was von ... WHERE BINARY ...
gelesen, könnte das was damit zu tun haben?

Dann solltest du das vielleicht gleich von Anfang an erwähnen.

[quote]Hab mal was von ... WHERE BINARY ...
gelesen, könnte das was damit zu tun haben?[/quote]
Ich erwähnte bereits Operatoren - könnte BINARY ein solcher sein? Und könnte man vielleicht im Manual nachschlagen, was der bewirkt?

So richtig schlau werde ich daraus nicht was da steht. Was heißt von Anfang an…zuvor wollte ich das nicht, es geht mir hier ums Prinzip. Aber wen man nicht nachfragen darf, bitte um die Information.
Mfg
Mgier