echo $begrüßung;
Ich prüfe mit dem:
if (!$valid){
$error_msg[]="blablabla.";
Ob z.B die Email-Adresse richtig ist.
Du solltest vorher definitiv dafür sorgen, dass $error_msg vorhanden ist und grundinitialisiert ist. Mit
$error_msg = array();
ist $error_msg auf alle Fälle ein leeres Array. Auch dann, wenn register_globals angeschaltet ist oder anderswo die Variable vorbelegt wurde. Auch wenn der bedingte Zweig nicht abgearbeitet wird, hast du damit ein Array und kannst foreach ungestraft darauf anwenden.
if ($error_msg) {
PHP ist nicht Javascript. Das Vorhandensein einer Variable testet man mit isset() (oder empty(), wenn man eine Prüfung auf "leer" oder nicht vorhanden braucht).
echo "$verabschiedung $name";