Heim > Artikel > Backend-Entwicklung > Warum kann PHP nur den Get-Wert akzeptieren, nicht aber den POST-Wert?
PHP verwendet im Allgemeinen Get- oder Post-Werte. In diesem Artikel erfahren Sie hauptsächlich, warum PHP nur Get-Werte, aber keine POST-Werte akzeptieren kann.
1. Mehrere Möglichkeiten, POST-Daten mit PHP zu erhalten
Methode 1. Die gebräuchlichste Methode ist: $_POST['fieldname'];
Hinweis: kann nur Daten empfangen, die von Content-Type: application/x-www-form-urlencoded übermittelt wurden
Erklärung: Das sind die Daten aus dem Formular POST
Methode 2, file_get_contents("php://input");
Beschreibung:
Ermöglicht das Lesen der Originaldaten von POST.
(Bei Verwendung des Schnittstellentesttools können Sie diese Methode nur verwenden, wenn der Header auf content-type: application/json eingestellt ist.)
Im Vergleich zu $HTTP_RAW_POST_DATA ist es Es belastet den Speicher weniger und erfordert keine speziellen php.ini-Einstellungen.
php://input kann nicht mit enctype="multipart/form-data" verwendet werden.
Erklärung:
Für POST-Daten ohne angegebenen Inhaltstyp können Sie file_get_contents("php://input"); verwenden, um die Originaldaten abzurufen.
Tatsächlich kann diese Methode verwendet werden, um beliebige POST-Daten mit PHP zu empfangen. Unabhängig vom Inhaltstyp ist auch die Einbeziehung binärer Dateiströme akzeptabel.
Die Verwendung von Methode 2 ist also die sicherste Methode
Methode 3. $GLOBALS['HTTP_RAW_POST_DATA'];
Anweisungen:
Total The Die Variable $HTTP_RAW_POST_DATA wird generiert, um die POST-Rohdaten zu enthalten.
Diese Variable wird nur generiert, wenn Daten mit nicht erkannten MIME-Typen gefunden werden.
$HTTP_RAW_POST_DATA ist für enctype="multipart/form-data"-Formulardaten nicht verfügbar
Wenn die geposteten Daten von PHP nicht erkannt werden, können Sie $GLOBALS['HTTP_RAW_POST_DATA'] verwenden, um sie zu empfangen,
wie Text /xml oder Soap usw.
Erklärung:
$GLOBALS['HTTP_RAW_POST_DATA'] speichert die Originaldaten von POST.
$_POST oder $_REQUEST speichert von PHP formatierte Daten in der Form key=>value.
Aber ob die POST-Daten in $GLOBALS['HTTP_RAW_POST_DATA'] gespeichert werden, hängt von der Centent-Type-Einstellung ab, d. h. der Content-Type muss beim POSTing von Daten explizit angegeben werden: application/x-www-form-urlencoded , POST Die Daten werden in $GLOBALS['HTTP_RAW_POST_DATA'] gespeichert.
Verwandte Empfehlungen:
Erläutern Sie den Unterschied zwischen Get und Post
Das obige ist der detaillierte Inhalt vonWarum kann PHP nur den Get-Wert akzeptieren, nicht aber den POST-Wert?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!