Hi Leute,
ich stelle grd meine Website auf mysqli um und bekomme nun folgene Fehlermedung dank <?php error_reporting(E_ALL); ?> :
ZitatWarning: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given in C:\xampp\htdocs\neu\login.php on line 88
hier das passende code snippet (Betroffenes ist FETT markiert):
PHP
<?php
// Session starten
session_start();
// Variablen deklarieren
$_SESSION['angemeldet'] = false;
$benutzername = '';
$passwort = '';
$fehlermeldung = '';
// Funktion zum verbinden zur Datenbank
function db_connect()
{
// Zugangsdaten für die DB
$dbhost = 'localhost';
$dbuser = 'root';
/*$dbpass = '******';*/
$dbname = 'DB1447462';
// Verbindung herstellen und Verbindungskennung zurückgeben
$conid = mysqli_connect( $dbhost, $dbuser/*, $dbpass */) or die( 'Verbindungsfehler!' );
if (is_resource( $conid ))
{
mysqli_select_db( $dbname, $conid ) or die( 'Datenbankfehler!' );
}
return $conid;
}
// Prüfen ob ein Cookie existiert und zu einem gültigen User gehört
if (isset( $_COOKIE['UserLogin'] ))
{
// Wert aus dem Cookie mit dem Wert in der Datenbank vergleichen
$conid = db_connect();
$sql = "SELECT
`id`
FROM
`autority`
WHERE
`cookie_hash` = '" .mysqli_real_escape_string( $conid, $_COOKIE['UserLogin'] ). "' AND
`aktiviert` = 1";
$ergebnis = mysqli_query( $sql, $conid );
// Stimmt der Cookie Hash überein, wurde 1 Datensatz gefunden
if (mysqli_num_rows($ergebnis) == 1)
{
// Wenn der Hash aus dem Cookie mit dem aus der DB übereinstimmt,
// Session Variable setzen und auf die geheime Seite weiterleiten
$_SESSION['angemeldet'] = true;
while($row = mysqli_fetch_object($ergebnis))
{
$_SESSION["user"] = $row->benutzername;
}
header( 'location: versteck.php' );
exit;
}
}
// Wenn das Formular abgeschickt wurde
if (isset( $_POST['login'] ))
{
// Maskierende Slashes aus POST Array entfernen
if (get_magic_quotes_gpc())
{
$_POST = array_map( 'stripslashes', $_POST );
}
// Benutzereingabe umladen, von Leerzeichen befreien und
$benutzername = strtolower( trim( $_POST['benutzer'] ) );
$passwort = md5( trim( $_POST['passwort'] ) );
// Benutzereingabe mit User in der Datenbank vergleichen
$conid = db_connect();
$sql = "SELECT
*
FROM
`autority`
WHERE
LOWER(`benutzername`) = '" .mysqli_real_escape_string( $conid, $benutzername ). "' AND
`passwort` = '" .mysqli_real_escape_string( $conid, $passwort ). "' AND
`aktiviert` = 1";
$ergebnis = mysqli_query($conid, $sql);
// Stimmen die Benutzereingaben überein, wurde 1 Datensatz gefunden
-->if (mysqli_num_rows($ergebnis) == 1)<--
{
// Abfrageergebnis fetchen
$usercookie = mysqli_fetch_assoc( $ergebnis );
// Wenn die Anmeldung korrekt war Session Variable setzen,
// COOKIE an Browser schicken und auf die geheime Seite weiterleiten
$_SESSION['angemeldet'] = $usercookie['id'];
setcookie( 'UserLogin', $usercookie['cookie_hash'], time()+2 );
header( 'location: versteck.php' );
exit;
}
else
{
$fehlermeldung = '<br><h4>Die Anmeldung war fehlerhaft!</h4><br>';
}
}
?>
Alles anzeigen
Was mich wundert, dass er nicht schon beim vergleichen des hash meckert...
hoffe ihr könnt mir helfen!