Login-Script fehlermeldung (non-object)

Kracky

Mitglied
Hallo Leute,

ich habe mich jetzt dran gesetzt endlich mal PHP zu lernen und habe mir schon ein kleines Login Script mit mySQL geschrieben.

das Script arbeitet auch einwandfrei und trozdem kriege ich immer eine Fehlermeldung (trotz funktion) wenn jemand einen falschen Benutzernamen/Passwort eingibt.

Notice: Trying to get property of non-object in F:\xampp\htdocs\logon.php on line 20

PHP:
<?php
session_start();

include("mysql.php");
include("navigation.php");

$user = $_POST['user'];
$pass = md5($_POST['pass']);

if($user == "" OR $pass == "")
	{
	echo "<center>Bitte alle Felder ausfüllen!<br><a href=login.php>Zurück</a></center>";
	exit;
	}

$abfrage = "SELECT user, pass FROM register WHERE user LIKE '$user' LIMIT 1";
$ergebnis = mysql_query($abfrage);
$row = mysql_fetch_object($ergebnis);

if($row->pass == $pass)
	{
	$_SESSION["user"] = $user;
	echo "<center>Login erfolgreich. Willkommen zurück, $row->user </center>";
	}
else
	{
	echo "<center>Login fehlgeschlagen. Bitte überprüfe deinen Benutzernamen oder das Passwort.</center>";
	}
?>

So sieht mein Code aus.

Kann mir jemand sagen wieso ich dauernd diese Fehlermeldung kriege und wie ich sie beseitige? ^^
 
Zeile 20
PHP:
if($row->pass == $pass)
Wenn der User in der DB nicht existiert, dann gibt mysql_fetch_object() kein Objekt zurück. In dem Fall versucht PHP in Zeile 20 auf ein Property eines Objektes, das eben kein Objekt ist, zuzugreifen.
Es ist in dem Fall nicht weiter tragisch und dein Script läuft richtig. Darum ist es auch 'nur' eine Notiz.
Du könntest mit is_object() zuerst prüfen ob $row auch ein Projekt ist.

Nachtrag:
Du kannst auch mit error_reporting() die Notizen ausblenden - ist aber auch nicht ganz sauber
 

Neue Beiträge

Zurück