dedlfix: if/else Anfängerfrage

Beitrag lesen

echo $begrüßung;

... schreibe lieber am Anfang des Scriptes noch
$name = $_POST['name']. Zu deiner Frage:

Dieses Umkopieren ist nicht empfehlenswert. Zum einen ist es unnötig, da man ebensogut auf $_POST['name'] zugreifen kann. Zum anderen verschleiert es die Herkunft des Variableninhalts. Bei der Notation von $_POST im Script ist sofort zu sehen, dass es sich hierbei um eine Benutzereingabe handelt, die ungeprüfte und möglicherweise schädliche Daten enthalten kann. Bei $name ist die Herkunft des Inhalts nicht mehr offensichtlich zu erkennen.

Benutze statt if (isset($name)){..} lieber if (isset($name) && $name != ''){..}

Das wäre Blödsinn. Zuerst legst du mit deiner obigen Umkopierempfehlung die Variable $name an und prüfst dabei nicht ob die Quelle, aus der du den Inhalt zu nehmen gedenkst, überhaupt vorhanden ist, und dann prüfst du, ob die Variable $name angelegt ist. Natürlich ist sie das. Aber die Idee ist nicht abwegig, wenn man sie richtig ausführt:

if (!isset($_POST['name']) or strlen(trim($_POST['name'])))
  // Fehler. Formular nicht abgesendet oder Feld nicht oder nur mit Leerzeichen ausgefüllt

Hier sind sicher noch weitere Inhaltsprüfungen erforderlich. Z.B.: Wenn der eingegebene Wert einen Zeilenumbruch enthält gelangt dieser natürlich beim Schreiben in die Datei mit in selbige. Das wird kaum gewollt sein, da man pro Gast nur eine Zeile haben möchte. Ebenso sind Einträge wie "http://www.example.com/" keine hierzulande üblichen Namen für Personen ...

echo "$verabschiedung $name";