Heim > Artikel > Backend-Entwicklung > Warum gibt „isset($_POST)“ bei leeren Formularen immer „True“ zurück?
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:
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!