Hey ich danke euch beiden wirklich für die Geduld und Hilfe. Ich werde mich morgen mal ransetzen und euch am Ende teilhaben lassen. Ich schreibe das nochmal komplett um
Beiträge von Konvyru
-
-
ja ich kann mir das schon denken, dass es alles andere als sicher ist :D. Der Sinn hinter der While Schleife ist, dass alle Reihen durchsucht werden um das passwort aus dem Login mit dem aus der DB abzugleichen.
Ich hatte mir über youtube diese Möglichkeit geholt.
Hast du eine andere Idee, wie das abgeglichen werden soll. Für mich war das der nachvollziehbarste Code
<-- Anfänger
-
sorry, aber damit kann ich nicht viel anfangen. Ich habe das jetzt so genommen (du hattest das nochmal editiert :D)
nun sagt er
Notice: Object of class mysqli_result could not be converted to int in D:\XAMPP\htdocs\myphp\login.php on line 23
Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, bool given in D:\XAMPP\htdocs\myphp\login.php on line 23das hatte ich schonmal, dass er dauernd zwischen String und Bool springt. Aber es soll doch ein INT sein.
-
Oh wow,danke dir
wir kommen der Sache näher. Jetzt hat er den Fehler nicht mehr angezeigt, sondern, dass keine DB vorhanden war. Die habe ich nun bei mysqli_conenct nachgetragen.
Nachdem ich jetzt deinen Code eingetragen habe, wurde der Fehler leider nur verschoben
Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, string given in D:\XAMPP\htdocs\myphp\login.php on line 25
Ich habe nun schon noch einiges geändert, aber trotzdem bleibt der Fehler. Tut mir leid, wenn ich irgendwas offensichtliches nicht sehe.
mysqli_result ist doch kein Befehl oder?
PHP
Alles anzeigen<?php //Verbindung zur Datenbank $con = mysqli_connect("localhost", "root", "", "onlineklausur"); // Verbindungsüberprüfung zur DB if (mysqli_connect_errno()) { echo "Database connection failed."; } $Matrikelnummer = $_POST['Matrikelnummer']; $Passwort = $_POST['Passwort']; $loginbutton = $_POST['login']; if ($loginbutton) //Nach klicken Login auf startseite.php { if($Matrikelnummer && $Passwort) //Überprüfung, ob alle Felder ausgefüllt wurden { $query = "SELECT Matrikelnummer FROM Student WHERE Matrikelnummer='$Matrikelnummer'"; // Überprüfung, ob Matrikelnummer vorhanden //$num = mysqli_num_rows($query); $result = mysqli_query($con, $query) or die ("ERROR: ".mysqli_error($con)); $row = mysqli_num_rows($result); if($row!=0) { WHILE ($row = mysqli_fetch_assoc($query)) //suchen in der DB nach Übereinstimmung PW zu Matrikelnummer { $dbMatrikelnummer = $row["Matrikelnummer"]; $dbPasswort = $row["Passwort"]; } if ($dbMatrikelnummer == $Matrikelnummer AND $dbPasswort == Passwort) //erfolgreicher Login { echo "Login erfolgreich"; } else "Ihre Daten sind falsch"; } else echo "Benutzer existiert nicht"; } else echo "Bitte füllen Sie alle Felder aus"; } ?>
-
Hallo zusammen,
ich lerne derzeit PHP und mysql und versuche mich daran, einen Login über meine Datenbank zu basteln.
Es ist gewollt, dass sich der User über seine Matrikelnummer und sein Passwort anmeldet.
jedoch bekomme ich immer die Fehlermeldung: Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, string given in D:\XAMPP\htdocs\myphp\login.php on line 20
Ich habe bereits im Internet gesucht, aber noch hat nichts bei mir funktioniert. Da ich noch ziemlich neu in dem Thema bin, finde ich es auch einfach nicht raus (sitze schon einige Stunden hier)Ich hab schon verstanden, dass ein Text zurückgegeben wird. Jedoch soll mysqli_num_rows doch eine Zahl liefern? Wie ist das umsetzbar? Immerhin ist die Matrikelnummer als INT gegeben.
Vielen Dank im Voraus.
PHP
Alles anzeigen<?php //Verbindung zur Datenbank $con = mysqli_connect("localhost", "root", ""); // Verbindungsüberprüfung zur DB if (mysqli_connect_errno()) { echo "Database connection failed."; } $Matrikelnummer = $_POST['Matrikelnummer']; $Passwort = $_POST['Passwort']; $loginbutton = $_POST['login']; if ($loginbutton) //Nach klicken Login auf startseite.php { if($Matrikelnummer && $Passwort) //Überprüfung, ob alle Felder ausgefüllt wurden { $query = "SELECT Matrikelnummer FROM Student WHERE Matrikelnummer='$Matrikelnummer'"; // Überprüfung, ob Matrikelnummer vorhanden $num = mysqli_num_rows($query); if($num!=0) { WHILE ($row = mysqli_fetch_assoc($query)) //suchen in der DB nach Übereinstimmung PW zu Matrikelnummer { $dbMatrikelnummer = $row["Matrikelnummer"]; $dbPasswort = $row["Passwort"]; } if ($dbMatrikelnummer == $Matrikelnummer AND $dbPasswort == Passwort) //erfolgreicher Login { echo "Login erfolgreich"; } else "Ihre Daten sind falsch"; } else echo "Benutzer existiert nicht"; } else echo "Bitte füllen Sie alle Felder aus"; } ?>