Umleiten und Senden von Daten per POST in PHP
In PHP kann es vorkommen, dass Sie einen Benutzer an einen externen Benutzer umleiten müssen Website und übermitteln Sie Daten per POST an diese Website. Anders als bei HTML-Formularen unterstützt PHP dieses Verhalten nicht nativ.
GET vs. POST
In der Webentwicklung gibt es zwei Hauptmethoden zum Senden von Daten aus einer Quelle an ein Ziel:
PHP bietet eine einfache Methode zum Senden von Daten per GET mithilfe der Header-Funktion. Zum Beispiel:
<code class="php">header('Location: http://www.provider.com/process.jsp?id=12345&name=John');</code>
POST mit PHP
PHP kann Daten jedoch nicht direkt per POST senden, ohne auf externe Bibliotheken oder Browsermanipulation angewiesen zu sein. Ein möglicher Ansatz besteht darin, die cURL-Bibliothek zu verwenden, um POST-Anfragen zu stellen. Allerdings muss hierfür der PHP-Code als Client fungieren, was nicht immer wünschenswert ist.
Eine alternative Lösung besteht darin, ein HTML-Formular dynamisch mit PHP zu generieren, es mit den erforderlichen Daten zu füllen und es per JavaScript zu übermitteln. Mit diesem Ansatz können Sie POST nutzen, ohne die Anfrage direkt in PHP zu bearbeiten. Der folgende Code veranschaulicht dieses Konzept:
<code class="php">// Generate HTML form with hidden fields $html = '<form action="http://www.provider.com/process.jsp" method="post">'; $html .= '<input type="hidden" name="id" value="12345">'; $html .= '<input type="hidden" name="name" value="John">'; $html .= '<script>document.onload = function() { document.forms[0].submit(); }</script>';</code>
Dieser Code erstellt ein HTML-Formular, das sich beim Laden der Seite automatisch an die angegebene URL sendet. Während diese Methode auf Browserunterstützung angewiesen ist, ermöglicht sie die POST-Datenübertragung von PHP.
Das obige ist der detaillierte Inhalt vonWie kann ich mit PHP Daten per POST an eine externe Website senden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!