dedlfix: Login mit sessions

Beitrag lesen

echo $begrüßung;

»»Neben dem, was dedlfix schon sagte solltest du session_start() immer an den »»Anfang des Scriptes setzen.

Bitte die Zitat-Zeichen nicht verändern. Danke.

Sollte ich dann session start ganz an den anfang schrieben und einfach wenn das passwort falsch ist session_destroy verwenden?

Es ist egal, wo du dein session_start() stehen hast, solange keine Ausgabe erfolgte. Wieviel Code zwischen dem Dateianfang und dem session_start() steht, ist also nicht von Belang.

session_destroy() macht nicht automtisch das was session_start() eingeleitet hat wieder rückgängig. Wenn es deine Logik vorsieht, die Session erst zu starten, wenn die Benutzereingaben überprüft wurden, dann spricht überhaupt nichts gegen diese Vorgehensweise (solange dabei keine Ausgabe erfolgt).

», denn das error_reporting auf E_ALL (und display_errors auf on) zu setzen ist beim Fehlersuchen auch oft hilfreich.
Hab ich gemacht aber ausgeben tut mir das nichts oder muss ich da noch etwas mit echo machen??
Könntest du mir das genauer erklären??

Die Standard-Einstellung von error_reporting unterdrückt Meldungen vom Typ Notice. Diese kommen beispielsweise, wenn versucht wird, lesend auf nicht existierende Variablen zuzugreifen. Bei einem Tippfehler im Variablennamen erhält man eine solche Meldung, aber auch, wenn man vergessen hat, seine Variablen explizit zu initialisieren.

PS: an den einstellungen der php.ini kann der fehler nicht liegen, oder???

Das kann man erst dann sagen, wenn man die Ursache kennt. Was hast du bisher an Kontrollausgaben gemacht? Man kann damit nicht nur Variableninhalte anzeigen sondern auch die Ergebnisse von Ausdrücken. var_dump(isset($_POST["Passwort"])); könnte dir beispielsweise ein FALSE anzeigen. Dann könntest du dich auf die Suche nach der Ursache dafür begeben. var_dump($_POST); könnte dann ergeben, dass es kein Element namens Passwort gibt, aber eins das passwort heißt. Kontrollausgaben zu machen ist eine grundlegende Fehlersuchmethode, die du immer wieder benötigst, um die Differenzen zwischen Wunsch und Wirklichkeit ausfindig zu machen.

echo "$verabschiedung $name";