Heim  >  Artikel  >  Backend-Entwicklung  >  Warum kann PHP nur den Get-Wert akzeptieren, nicht aber den POST-Wert?

Warum kann PHP nur den Get-Wert akzeptieren, nicht aber den POST-Wert?

小云云
小云云Original
2018-03-15 13:04:033181Durchsuche

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!

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