MySql PHP Fehlermeldung

Nico Mierisch

Grünschnabel
Schönen Guten Abend,

ich habe gestern mir ein Login System zusammengeschrieben mit Mysql

Mein Problem ist es wenn ich auf die Login Datei gehe ( HTML ) Die Felder leer lasse und dann auf Login klicke das die PHP datei mir folgende Fehler Notice ausgibt:

Notice: Trying to get property of non-object in C:\xampp\htdocs\Main-Site\login-sources\login.php on line 17

Das Problem bezieht sich auf Line 17
PHP:
if($row->passwort == $passwort)


Komplette Code der Login.php datei
PHP:
<?php 
session_start(); 
?> 

<?php 
$verbindung = mysql_connect("localhost", "root" , "*****") 
or die("Verbindung zur Datenbank konnte nicht hergestellt werden"); 
mysql_select_db("login") or die ("Datenbank konnte nicht ausgewählt werden"); 

$username = $_POST["username"]; 
$passwort = md5($_POST["password"]); 

$abfrage = "SELECT username, passwort FROM login WHERE username LIKE '$username' LIMIT 1"; 
$ergebnis = mysql_query($abfrage); 
$row = mysql_fetch_object($ergebnis); 

if($row->passwort == $passwort) 
    { 
    $_SESSION["username"] = $username; 
    echo "Login erfolgreich. Bitte lade die Seite jetzt neu"; 
    } 
else 
    { 
    echo "Benutzername und/oder Passwort waren falsch. <a href=\"login.html\">Login</a>"; 
    } 

?>

Eine Live Vorschau gibt es auf http://develop.xoney.de zu sehen


Vielen Dank im voraus
 
Das liegt an dieser Zeile:

PHP:
if($row->passwort == $passwort)

die auch genutzt wird, wenn nichts eingegeben wurde und das Statement auf das sie sich bezieht nichts ergeben hat.

Ersetze die Zeile durch

PHP:
if(mysql_num_rows($result) > 0 && $row->passwort == $passwort)

oder ergänze vor der Zeile eine weitere if-Bedingung die prüft, ob das Statement etwas ergeben hat.
 

Neue Beiträge

Zurück