echo $begrüßung;
» if (isset($uhr) && !empty($uhr) && $uhr === '9-12 Uhr')
wenn !isset() zutrifft, trifft empty() auch zu.
Du hast die Negierung bei isset() und empty() getauscht. War das Absicht oder ein Versehen? Wie auch immer, isset() ist nicht die Umkehrfunktion von !empty(). Bei beispielsweise $foo = '0'; ergibt isset($foo) true und empty($foo) ebenfalls.
Man kann beim Prüfen mit empty() im Allgemeinen auf eine isset()-Prüfung verzichten, denn das Ergebnis ändert sich wie im obigen Fall nicht. isset() ergibt true bei nicht vorhandenen oder zwar vorhandenen aber null enthaltende Variablen. empty() beklagt sich nicht, wenn die zu prüfende Variable nicht vorhanden ist und ergibt true für nicht vorhandene sowie Variablen mit null und außerdem noch bei false, leerem Array, 0, '' und '0'.
» Jetzt möchte ich die echo Ausgabe aber genau umgekehrt haben,
»if (!isset($_POST['uhr']) or $_POST['uhr'] != '9-12 Uhr')
{
echo "uhr wurde nicht gesetzt";
}
else
{
echo "uhr wurde gesetzt";
}Das sollte genügen.
Es wird zuerst ausgewertet, ob
uhr
überhaupt übertragen wurde.
Wenn kein Uhrwert übertragen wurde, trifft der if-Zweig zu.
Ein isset($_POST['foo']) prüft nicht den Inhalt sondern das Vorhandensein. Ein leer gelassenes Eingabefeld (das nicht durch irgendwelche Manipulationen von der Übertragung ausgeschlossen wurde) erzeugt einen Leerstring im dazugehörigen $_POST-Eintrag. Es ist also egal, ob eine Uhrzeit eingetragen wurde oder nicht. Für ein Text-Eingabefeld wird !isset($_POST['uhr']) lediglich bei nicht versendetem Formular zu true evaluieren. Nicht selektierte Checkboxen und Radiobuttons werden nicht übertragen und ergeben dann bei der isset()-Prüfung true.
Wenn ein Wert übertragen wurde, darf und wird der or-Teil ausgewertet.
Auch '' ist ein übertragbarer Wert.
Wenn der Text jetzt ungleich '9-12 Uhr' ist, trifft der if-Zweig zu.
Wenn der Text jetzt aber gleich ist, trifft der else-Zweig zu.
Diese beiden Aussagen stimmen wegen Folgefehler nicht mehr. Es sei denn, es handelt sich um Checkboxen oder Radiobuttons.
echo "$verabschiedung $name";