Frage zu Anmelde Script

  • Hallo zusammen!
    Ich habe heute angefangen mit PHP scripten zu lernen und habe mir das Video aus YouTube zum Anmelde Script angeschaut und auch nachgemacht und habe aber immer wenn ich die Seite neu aufgerufen habe, habe ich diese Fehlermeldungen bekommen:

    Code
    Notice: Undefined index: benutzername in C:\Programme\xampp\htdocs\einloggen.php on line 4
    Notice: Undefined index: kennwort in C:\Programme\xampp\htdocs\einloggen.php on line 5
    Notice: Undefined index: eingeloggt in C:\Programme\xampp\htdocs\einloggen.php on line 15


    Hier ist mein Anmelde Script:




    Auserdem bekomme ich wenn ich wie ohne mich anzumelden auf "http://localhost/Daten.php" gehe nicht nur die Meldung das ich die Berechtigung nicht habe sondern auch diesen Error:

    Code
    Notice: Undefined index: eingeloggt in C:\Programme\xampp\htdocs\daten.php on line 4


    Daten Script:


    Hier ist mein Anmelde Script:



    Ich wäre ihnen sehr verbunden wenn sie mir helfen könnten.

  • Hi,
    also bei mir kommen keine Fehlermeldungen.
    Was ich aber anders machen würde:
    Wenn du willst, dass das Formular nur ausgegeben wird, wenn man noch nicht eingeloggt ist, dann mach das mit echo und nicht direkt in HTML.

  • Hallo Marius,
    hierbei handelt es sich nicht um Fehlermeldungen im herkömmlichen Sinne, sonder um sog. Notices.
    Diese zeigen nur an, dass eine Variable bzw. ein Arrayindex nicht definiert ist, in diesem Falle für die per $_POST empfangenen Werte, weil ja beim ersten Aufruf der Seite das Formular noch nicht abgeschickt wurde und somit $_POST["benutzername"] noch keinen Wert hat.
    Diese schaden deinem Skript aber nicht, du kannst sie hiermit auch abschalten: (Sie sind dann noch vorhanden, werden aber nicht mehr angezeigt)

    PHP
    <span class="syntaxdefault"><br /></span><span class="syntaxcomment">// Bitte an den Anfang des Skriptes schreiben<br /></span><span class="syntaxdefault">error_reporting</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">E_ALL </span><span class="syntaxkeyword">^</span><span class="syntaxdefault"> E_NOTICE</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault"> </span>


    Wenn du diese Notices trotzdem wegbekommen willst, dann musst du schreiben:

    PHP
    <span class="syntaxdefault"><br />$Benutzername   </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">(isset(</span><span class="syntaxdefault">$_POST</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'benutzername'</span><span class="syntaxkeyword">]))</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">?</span><span class="syntaxdefault"> $_POST</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'benutzername'</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">?</span><span class="syntaxdefault"> </span><span class="syntaxstring">""</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">$Passwort       </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">(isset(</span><span class="syntaxdefault">$_POST</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'passwort'</span><span class="syntaxkeyword">))</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">?</span><span class="syntaxdefault"> $_POST</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'passwort'</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">?</span><span class="syntaxdefault"> </span><span class="syntaxstring">""</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault"> </span>


    Und für die Sessionvariable:

    PHP
    <span class="syntaxdefault"><br /></span><span class="syntaxkeyword">if (isset(</span><span class="syntaxdefault">$_SESSION</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'eingeloggt'</span><span class="syntaxkeyword">]) && </span><span class="syntaxdefault">$_SESSION</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'eingeloggt'</span><span class="syntaxkeyword">] == </span><span class="syntaxdefault">true</span><span class="syntaxkeyword">)<br /> </span><span class="syntaxdefault"></span>


    Philipp: Wieso sollte er "echo" nehmen? Diese Lösung ist doch viel eleganter, finde ich.
    DerWaldschrat

  • Zitat von &quot;Marius&quot;

    Ja aber im Video von Ihn hat er die Meldungen ja auch nicht bekommen?
    Warum hat er sie nicht bekommen?


    Wie wir mittlerweile in den gefühlten 20.000Threads, die exakt dieses Thema behandeln, festgestellt haben liegt es einfach daran, dass Axel (der Macher der Videos) seinen Server/Localhost dementsprechend vorkonfiguriert hatte.


    Naja.. hier BTW: der Link zu dem letzten Thema, der dies behandelte.. nur 2Reihen unter deinem Thread.


    Sarkkan

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!