dedlfix: session_start (); ??

Beitrag lesen

echo $begrüßung;

Du fragtest nach Fehlern und Verbesserungsmöglichkeiten.

<input name="SUBMIT_LOGIN" type="submit" value="ANMELDEN">

Wenn ein Formular per Enter abgesendet wird, senden manche Browser den ersten Submit-Button, den sie finden. Andere tun dies nicht. (Wenn das Element nicht aktiviert wurde, sollte auch nicht so getan werden als ob.) Du kannst dieses Verhalten mit den beiden meist verwendeten Browsertypen nachvollziehen.

if (isset ($_POST['SUBMIT_LOGIN'])){

Diese Abfrage liefert also nur manchmal etwas.

if ($_POST['USERNAME'] == $name && $_POST['PASSWORD'] == $pass){

Auch hier wäre eine Abfrage mit isset() vor dem lesenden Zugriff günstig, um Notice-Meldungen zu vermeiden. (Bitte beim Script-Entwickeln das error_reporting auf E_ALL setzen, damit diese hilfreichen Meldungen nicht unterdrückt werden.)

echo "<a href="login.php?logout">LOGOUT</a>";
if ($_GET['LOGOUT']){

Bei einem Test sollte dir auffallen, dass das Logout nicht funktioniert. Eben erwähntes E_ALL im error_reporting sagt dir auch, dass es zum einen $_GET['LOGOUT'] nicht gibt (Groß-/Kleinschreibung beachten und außerdem isset() verwenden) und zum anderen wird diese Abfrage immer als false ausgewertet, da "logout" mit Leerstring als Wert in $_GET abgelegt wird. Mit isset($_GET['logout']) kannst du testen, ob der Schlüssel 'logout' in $_GET enthalten ist und damit ob ein Logout gewünscht wurde.

echo "$verabschiedung $name";