Heim  >  Artikel  >  Backend-Entwicklung  >  Warum gibt „isset($_POST)“ bei leeren Formularen immer „True“ zurück?

Warum gibt „isset($_POST)“ bei leeren Formularen immer „True“ zurück?

Linda Hamilton
Linda HamiltonOriginal
2024-11-08 19:08:02519Durchsuche

Why Does `isset($_POST)` Always Return True for Empty Forms?

Enthüllung des Geheimnisses: Warum „isset($_POST)“ immer „True“ zurückgibt, auch bei leeren Formularen

Beim Umgang mit Formularübermittlungen Es ist üblich, sich auf die Funktion isset() zu verlassen, um zu überprüfen, ob bestimmte Feldwerte bereitgestellt wurden. Sie können jedoch auf eine rätselhafte Situation stoßen, in der isset($_POST["field_name"]) immer als wahr ausgewertet wird, selbst wenn das entsprechende Feld im übermittelten Formular leer gelassen wurde.

Dem Rätsel nachgehen: Das Verhalten bei Formulareingaben verstehen

Der Übeltäter liegt in der Natur der Formulareingaben. Standardmäßig gelten die meisten Formulareingaben immer als „gesetzt“, unabhängig davon, ob der Benutzer einen Wert angegeben hat. Dies liegt daran, dass sie automatisch mit leeren Zeichenfolgewerten gefüllt werden.

Das fehlende Stück: Einbindung der Leerheitsprüfung

Um dieses Problem zu beheben, müssen Sie die isset()-Prüfung ergänzen mit einer Leerstandskontrolle. Eine Möglichkeit, dies zu erreichen, ist die Verwendung der Funktion empty().

Umschreiben des Codes mit einer Leerheitsprüfung:

if (!empty($_POST["mail"])) {
    echo "Yes, mail is set";    
} else {  
    echo "No, mail is not set";
}

Erklärung:

  • Die Funktion !empty() wird nur dann als wahr ausgewertet, wenn der Wert von $_POST["mail"] nicht leer ist.
  • Dadurch wird sichergestellt, dass die Funktion „Ja, E-Mail ist Die Meldung „Nein, E-Mail ist nicht festgelegt“ wird nur angezeigt, wenn der Benutzer einen Wert für das E-Mail-Feld angegeben hat.
  • Die Meldung „Nein, E-Mail ist nicht festgelegt“ wird angezeigt, wenn das Feld leer gelassen wird.

Fazit:

Durch die Integration einer Leerheitsprüfung in Ihren Code können Sie genau bestimmen, ob einem Formularfeld ein Wert bereitgestellt wurde, und so das Problem „isset($_POST)“ lösen. Gibt bei leeren Feldern immer „true“ zurück.

Das obige ist der detaillierte Inhalt vonWarum gibt „isset($_POST)“ bei leeren Formularen immer „True“ zurück?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn