echo $begrueszung;
Der Grund, warum du auf dieses letzten Endes nicht ganz so kompliziertes ;) Problem bisher noch keine Antwort bekommen hast, könnte darin liegen, dass dein Code scheußlich formatiert ist. Man kann deine Kontrollstrukturen nur sehr schlecht erkennen.
else if (!$fehler and !$_POST['Languages']=="selected.."){
Hier liegt der Hund begraben.
Aber erstmal was nebensächliches: Du fragst ja vorher schon mit
if ($fehler)
ab, ob $fehler true ist. Das !$fehler ist hier überflüssig. In diesen else-Zweig kommst du ja nur, wenn !$fehler true ergibt.
!$fehler ist also an dieser Stelle immer true, schauen wir uns mal
!$_POST['Languages'] == "selected.."
an. Die Operatoren ! und == sind gleichwertig, dieser Ausdruck wird hier also von links nach rechts ausgewertet.
Dein ! bewirkt, dass $_POST['Languages'] negiert wird.
Hier kommt dann noch die automatische Typ-Umwandlung von PHP zum Zuge: Die Strings '' oder '0' ergeben in boolean umgewandelt false alle anderen ergeben true.
Da der erste Teil nun vom Typ boolean ist, wird der String "selected.." ebenfalls in boolean umgewandelt und das ergibt true. (siehe auch PHP-Handbuch - Anhang O. PHP type comparison tables)
Ich denke, nun solltest du nachvollziehen können, warum dein Problem beim Reload auftritt, und außerdem verweise ich noch auf die Vergleichsoperatoren-Handbuchseite.
echo "$verabschiedung $name";