Der Martin: Variable auf einen festen Wert prüfen

Beitrag lesen

Moin,

»»   if (isset($uhr) && !empty($uhr) && $uhr === '9-12 Uhr')
wenn !isset() zutrifft, trifft empty() auch zu.

... und wenn empty() zutrifft, kann ==='9-12 Uhr' niemals zutreffen.
Ergo: Du hast Recht, empty() ist in dieser Prüfung redundant.

if (!isset($_POST['uhr']) or $_POST['uhr'] != '9-12 Uhr')
      {
          echo "uhr wurde nicht gesetzt";
      }
      else
      {
          echo "uhr wurde gesetzt";
      }

Das sollte genügen.

Ja, aber man sollte darauf achten, dass der logische ODER-Operator unterschiedliche Prioritäten hat, je nachdem ob man ihn als || oder als or schreibt. Das ist hier unerheblich, weil der Vergleichsoperator in beiden Fällen stärker bindet. Aber es gibt Ausdrücke, in denen das einen Unterschied ausmacht.

Ich ahne und befürchte, dass Du mit "register_globals = on" arbeitest. Google mal nach diesem Begriff oder suche hier im Archiv danach. Du solltest diese Einstellung nicht mehr benutzen. Ich habe deshalb gleich $_POST['uhr'] benutzt.

Guter Hinweis - auch wenn das aus dem Codeschnipsel des OP nicht direkt hervorgeht.

Fröhliche (F)eiertage,
 Martin

--
Schon gewusst, dass Aftershave trotz des Namens eigentlich eher fürs Gesicht gedacht ist?