Leeres $_POST-Array nach der Formularübermittlung in PHP
In einem benutzerdefinierten Content Management System (CMS) sind Benutzer auf ein Problem gestoßen, bei dem $ _POST-Arrays bleiben bei der Formularübermittlung leer. Dieses Verhalten wird nach der Migration der Anwendung auf einen Produktionsserver beobachtet. Während die Formulardaten im php://-Eingabestream vorhanden sind, fehlen sie in den Arrays $_POST und $_REQUEST.
Um dieses Problem zu beheben, ist es wichtig, die Inhaltstyp-Header zu bestimmen. Wenn das Formular mit einem JSON-Inhaltstyp (application/json) übermittelt wird, füllt PHP das Array $_POST nicht. Dies liegt daran, dass JSON-Daten anders behandelt werden als typische formcodierte Daten, die normalerweise über $_POST verarbeitet werden.
Um das Problem zu beheben, kann der folgende Code verwendet werden:
$_POST = json_decode(file_get_contents("php://input"), true);
Dieser Code liest die JSON-Daten aus dem php://-Eingabestream, dekodiert sie und weist sie dem $_POST-Array zu, wodurch die Formulardaten für weitere Zwecke zugänglich gemacht werden Verarbeitung.
Das obige ist der detaillierte Inhalt vonWarum ist mein $_POST-Array nach der Formularübermittlung in PHP leer und wie kann ich das beheben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!