PHP での POST 経由のデータのリダイレクトと送信
PHP では、ユーザーを外部にリダイレクトする必要がある状況が発生することがあります。 Web サイトにアクセスし、POST 経由でその Web サイトにデータを渡します。 HTML フォームとは異なり、PHP はこの動作をネイティブにサポートしません。
GET と POST
Web 開発では、ソースからデータを送信するための主な方法が 2 つあります。宛先へ:
PHP では、ヘッダー関数を使用して GET 経由でデータを送信する簡単な方法が提供されています。例:
<code class="php">header('Location: http://www.provider.com/process.jsp?id=12345&name=John');</code>
PHP による POST
ただし、PHP は、外部ライブラリやブラウザーの操作に依存せずに POST 経由でデータを直接送信することはできません。考えられるアプローチの 1 つは、cURL ライブラリを使用して POST リクエストを行うことです。ただし、これには PHP コードがクライアントとして機能する必要があり、これは必ずしも望ましいことではありません。
代替ソリューションとしては、PHP を使用して HTML フォームを動的に生成し、必要なデータをそれに入力し、JavaScript 経由で送信します。このアプローチにより、PHP でリクエストを直接処理せずに POST を活用できます。次のコードは、この概念を示しています。
<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>
このコードは、ページの読み込み時に指定された URL に自動的に送信される HTML フォームを作成します。この方法はブラウザのサポートに依存していますが、PHP からの POST データ送信が可能になります。
以上がPHP を使用して POST 経由で外部 Web サイトにデータを送信するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。