Also erstmal ist das kein Fehler sondern "nur" eine Notice, die dich auf eine unsaubere Programmierung aufmerksam macht.
Es gibt grundsätzlich zwei Möglichkeiten, diese Notice los zu werden.
1. Die ebenfalls unsaubere Methode diese durch setzen von @ oder Error-Reporting zu unterdrücken.
Kann man machen, sollte man aber nicht.
2. Wie schon beschrieben das Abfangen der POST-Variablen mit isset, dann kommt auch keine Notice mehr und der Code ist sauber.
$benutzername = (isset($_POST['benutzername'])) ? $_POST['benutzername'] : "";
$kennwort = (isset($_POST['kennwort'])) ? $_POST['benutzername'] : "";
Du kannst das Ganze sogar noch erweitern und direkt abfragen ob die Inhalte dem entsprechen was du zum einloggen haben willst:
$benutzername = (isset($_POST['benutzername']) && $_POST['benutzername'] == "Tom") ? $_POST['benutzername'] : "";
Am Rande sei noch erwähnt das man des sauberen Stils wegen eigentlich immer die Variable mit dem Inhalt vergleicht und nicht umgekehrt.
Und nur davon, das du eine Session startest und einen Benutzernamen und Kennwort abfragst ist man auch noch nicht "eingeloggt", was immer das an dieser Stelle bedeuten mag.
Zum "einloggen" gehört dann schon mindestens ein Parameter, den du in die Session schreibst, denn spätestens wenn du auf eine weitere Seite verzweigst ist das schöne einloggen wieder weg.
BTW. Geht es nur mir so ? Ich finde die grössten Fehler könnte man aus seinem Anfrage-Post ruhig mal rausnehmen, sofern es sich um Buchstaben-Dreher handelt. Du schmierst hier einen Post hin und erwartest daraufhin Hilfe.
Ich will hier gar keine Diskussion zu Rechtschreibung beginnen aber zumindestens Mühe könnte man sich doch geben wenn man Hilfe erwartet.
|