Also arbeite ich an einem einfachen Login-Skript und ich habe ein Problem, wo ich diesen Fehler bekomme.Warnung: mysqli_num_rows() erwartet, dass Parameter 1 mysqli_result ist
<?php
require_once './php/db_connect.php';
?>
<?php
$username="";
$password="";
// username and password sent from form
$myusername=$_POST['myusername'];
$mypassword=$_POST['mypassword'];
$sql="SELECT * FROM logins WHERE username='$myusername' and password='$mypassword'";
$result=$db->query($sql);
// Mysql_num_row is counting table row
$count=mysqli_num_rows($result);
// If result matched $myusername and $mypassword, table row must be 1 row
if($count==1){
// Register $myusername, $mypassword and redirect to file "login_success.php"
session_register("myusername");
session_register("mypassword");
header("location:login_success.php");
}
else {
echo "Wrong Username or Password";
}
?>
Aber ich kann nicht scheinen, um es zu lösen. Ich denke, ich muss vielleicht ändern, wie ich die Abfrage von SELECT bekomme, aber nicht so sicher wie.
Sie mischen Object Oriented mit Procedural-Datenbankverbindung. – Martin
Ihr Code ist * weit offen * bis ** SQL-Injektion **. Sie sollten prüfen, ob Abfrageparameter mit vorbereiteten Anweisungen verwendet werden. – David
Aber @David, mein Passwort ist wirklich "OR" 1 "=" 1 " –