registrierung:benutzername überprüfen ob vorhanden php mysql



  • Hallo liebe Forumuser,

    Ich bin am verzwewifeln.
    Ich versuche gerade eine registrierung zuschreiben.
    Dort soll bei der Registrierung überprüft werden ob der benutzername schon vergeben ist wenn ja soll er eine Fehlermeldung geben und wenn nicht alles in der Datenbank eintragen

    bis jetzt bin ich so weit gekommen:

    $pruefen = "SELECT username FROM login WHERE username='$username'"; 
    $result = mysql_query($pruefen); 
    $count = mysql_num_rows($result); 
        if ($count == 1) 
        { 
        echo "Dieser Benutzer existiert bereits. Bitte wählen sie einen anderen Benutzernamen."; 
        }
        else
        {
        echo "Nicht gefunden";
        }
    

    mir wird immer gesagt das der benutzer nicht gefunden wurde obwohl er schon 5 mal in der Datenbak drinne ist und er setzt denn selben benutzernamen denn nochmal rein

    ich hoffe das ihr mir da weiter helfen könnt danke!

    mfg derdefeckter



  • Na vielleicht gint Dir count ja eine Zahl > 1 zurück.

    Du solltest aber so nicht arbeiten. Stichwort SQLINJEKTION



  • ist der username kein Keyfeld? Würde eigentlich Sinn machen und doppelte Einträge verhindern

    -edit-
    was unix-tom mit sqlinjektion meint: sorg dafür, dass $username für die Verwendung in SQL-Befehlen vorbereitet wird, bevor du ihn verwendest (durch mysql_real_escape_string ). Ansonsten kann es böse enden



  • Unix-Tom schrieb:

    Na vielleicht gint Dir count ja eine Zahl > 1 zurück.

    Du solltest aber so nicht arbeiten. Stichwort SQLINJEKTION

    wenn er 5 mal drin steht sowieso 🙂



  • Hallo leute,

    Ich habe es jetzt hin bekommen!

    Wie kann ich das denn genau anstellen also die SQLINJEKTION
    könnt ihr mir dazu mehr sagen und ein wenig erklären

    ich wäre euch sehr dankbar!

    mfg derdefeckter



  • die Antwort auf diese Frage wurde dir bereits gegeben. Der Grund dafür ist, dass sonst jemand statt einem usernamen einen sql-Befhel schreiben könnte, der dir zum Beispiel deine komplette Datenbank killt.



  • hallo Leute

    erstmal danke für die grosse Hilfe!

    wäre das so richtig?

    $pruefen = "SELECT username FROM login WHERE username='".mysql_real_escape_string($username)."'";
    $result = mysql_query($pruefen);
    $count = mysql_num_rows($result);
    

    und muss ich das nochmal bei dem into befehl machen? oder langt das da schon?

    mfg derdefeckter



  • Hallo,

    so siehts gut aus 👍

    Das solltest du bei jedem SQL-Befehl machen der durch einen anderen Benutzer beeinflusst werden kann! So auch bei INSERT oder UPDATE!

    VlG


Anmelden zum Antworten