User Groß- Kleinschreibung

  • Moin,
    ich habe ein kleines Problemchen :P
    Ich habe ein Script welches User in 'ner Datenbank speichert. Falls es den User schon gibt, wird die speicherung abgebrochen.
    Zum beispiel:

    eingabe: User123
    überprüfung....
    Ausgabe: Nicht gespeichert, es gibt den usre schon!!!!!

    Soweit so gut. jedoch ist das problem, wenn man zb dominik eingibt und es den user Dominik schon gibt es trotzdem funktioniret, da die groß-kleinschreibung (leider) eine rolle spielt. d.h. man kann den user nils & Nils haben und das kommt zu fehlern deswegen meine Frage:

    Wie kann man es machen, damit die Groß- Kleinschreibung egal ist? also dass man dann auch bei dominik ein fehler bekommt ^^

    Über eine Antwort würde ich mich riesig freuen und bedanke mich im Voraus :)
    MfG Unrigstriert :P

  • Das hier ist der relevante Code, wie würdest du es einbauen? :)

    $mysql = @mysql_query("SELECT user_name FROM tbl_benutzer WHERE user_name = '".mysql_real_escape_string($user)."'");
    $query= @mysql_fetch_array($mysql);
    if ($user == $query['user_name']) {
    echo "<p>Leider gibt es diesen Username schon. Bitte nehmen Sie einen anderen Usernamen.</p>";
    }
    else {
    $passwort = md5($pass1);
    $insert = "INSERT INTO tbl_benutzer(user_name,user_vorname,user_nachname,pass,email) VALUES('$user','$vorname','$nachname','$passwort','$email')";
    $query = mysql_query($insert);
    $insert7 = "INSERT INTO tbl_punkte(punkte_user,punkte) VALUES('$user',0)";
    $query7 = mysql_query($insert7);
    $hhh2 = date("Y-m-d H:i:s");
    echo "<p>Vielen Dank f&uuml;r Ihre Registrierung.<br />Ab jetzt k&ouml;nnen Sie das Userportal nutzen.<br />Bitte &uuml;berpr&uuml;fen Sie das Postfach der Adresse &bdquo;$email&ldquo; auf die Willkommensmail.</p><p>Sobald Sie sich einloggen, werden Sie mit &bdquo;Du&ldquo; angesprochen.</p>";
    }

    Weil wenn ich ehrlich bin, verstehe ich nicht ganz, wie ich's einbauen soll. Wäre super :)
    DANKE :)))

  • Wie ich schon schrieb:

    PHP
    $mysql = @mysql_query("SELECT user_name FROM tbl_benutzer WHERE LOWER(user_name) = LOWER('".mysql_real_escape_string($user)."')");

    Zudem kann die Bedingung danach auch anders formuliert werden:

    PHP
    if ( mysql_num_rows($mysql) > 0 ) {

    Und lass die @ vor den Funktionen weg, die sind hinderlich wenn Du tatsächlich mal Fehler haben solltest.

  • Alternativ kann auch einfach die Spalte in der der Name gespeichert wird auf eine ci-Kollation (ci = case-insensitive) gesetzt werden, statt auf eine bin-Kollation (bin = binary = case-sensitive).
    Je nach sonstigen Anforderungen halt.

    "Programming today is a race between software engineers
    striving to build bigger and better idiot-proof programs,
    and the universe trying to build bigger and better idiots.
    So far, the universe is winning."
    Rick Cook