Vinzenz Mai: + (PHP): mysqli_num_rows() erwartet Parameter?

Beitrag lesen

Hallo

übrigens unterlaufen Dir außer dem Escaping und der Missachtung von Rückgabewerten noch etliche weitere Fehler:

function checkUserData($name, $password){

Die Übergabeparameter sind $name und $password.

$q = "SELECT
            password
          FROM
            member
          WHERE
            name = '".$username."'";

Tja, eine Kontrollausgabe von $q hätte Dich darauf hinweisen können, dass Du etwas falsch gemacht hast.

Eine Benutzereingabe von O'Brien (ein Nickname hier im Forum) hätte ebenfalls eine Fehlermeldung zur Folge, ich könnte mir noch lustigere Eingaben mit noch interessanteren Konsequenzen vorstellen ...

Aber weiter im Text:

Woher kommt die Variable $username? Verläßt Du Dich etwa auf register_globals?

Warum überprüfst Du nicht gleich auch noch das Passwort mit?
Warum übergibst Du überhaupt $password?
Was sollte diese Funktion überhaupt bewirken?
Jedenfalls keinen User authentifizieren, sie sähe ja nur nach, ob es den Benutzer auch gibt, genauer sie schaut nach, wie oft es einen Benutzer gibt.

Traurig, traurig, traurig ...

function login(){
    $this->checkUserData("Hans");

sollte eine Notice ergeben. $password hat keinen Defaultwert und wird nicht übergeben.

}

Traurig, traurig, traurig ...

Noch ein Hinweis:
Es ist eine ausgezeichnete Idee, Code ordentlich zu kommentieren. Ich vermisse jeglichen Kommentar. Selbst Dir müsste doch auffallen, dass die Methode

check_user_data

ihren Namen völlig zu Unrecht trägt.

Es könnte so einfach sein:
Lege zuerst die Schnittstelle Deiner Funktion/Methode fest
(nutze Kommentare)

- Eingabe
 - Ausgabe

Implementiere anschließend die Methode.

Freundliche Grüße

Vinzenz