![]() |
Wie bekomme ich diesen PHP Fehler weg???
Hallo Liebe Mygully gemeinde,
Ich habe gerade an einem kleinem "einloggs*****" für einene kurs an meiner schule geschrieben.(er dient daher nur zu anschauunsgzwecken und zb. die sicherheit wird kkomplett vernachlässigt.) Ih habe diesen Quellcode: PHP-Code:
Fehler: Code:
Notice: Undefined index: benutzername in C:\xampp\htdocs\Einloggs*****\einloggen.php on line 3 MFG Tom |
Du überprüfts immer die Post Variable. Wenn du allerdings noch nichts abgeschickt hast so ist diese leer was zu dem von dir beschriebenen Fehler führt.
Pack den PHP teil nach dem Session_start() in ein if(exists($_POST ... und in den Else zweig eine Session variable die du dir bei erfolgreichem einloggen setzt dann bist du erstmal ohne Fehler |
Das er im Video das nicht angezeigt bekommt ist eine PHP Einstellung, das liegt daran, dass diese Variablen noch nicht gesetzt sind, musst du vorher mit ISSET überprüfen.
[Link nur für registrierte und freigeschaltete Mitglieder sichtbar. Jetzt registrieren...] |
Saubere Methode:
Variablen Prüfen bevor du sie verwendest. isset oder if(!empty($variable)). Unsaubere Methode: @$benutzername = $_POST['benutzername']; @$kennwort = $_POST['kennwort']; Unterdrückt die Fehlerausgabe. Ansonsten könnte noch sein... bin mir nicht ganz sicher, ist schon ein bisschen her... Debug Level zu hoch gedreht. Solche Fehler kann man glaub ich in der PHP.ini abschalten. |
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. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:50 Uhr. |
Powered by vBulletin® (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.