ホームページ >バックエンド開発 >PHPの問題 >PHP CURL POSTエラーの問題を解決する方法

PHP CURL POSTエラーの問題を解決する方法

藏色散人
藏色散人オリジナル
2021-03-26 09:11:352327ブラウズ

PHP CURL POST エラーの解決策: まず、エラーのある PHP コード ファイルを開き、次に PHP コード内の "$data" を配列から "urlencode()" 関数によってエンコードされたデータに変更します。

PHP CURL POSTエラーの問題を解決する方法

この記事の動作環境: Windows7 システム、PHP7.1 バージョン、DELL G3 パソコン

こんなときの問題の解決方法phpcurlpost メソッド

には次のシナリオがあります:

POST モードで a.php 内の b.php にデータを送信しますが、b.php はデータを受信できず、CURL操作 再び成功を示しますが、これは非常に奇妙です。 「配列を CURLOPT_POSTFIELDS に渡すと、cURL はデータを multipart/form-data にエンコードしますが、URL エンコードされた文字列を渡すと、データは application/x-www-form-urlencoded にエンコードされる」ことがわかります。 。

CURL に詳しくない人がプログラムを作成する場合、次のようなコードがよく使用されます。

コード例:

<?php
$data = array( &#39;Title&#39; => $title, &#39;Content&#39; => $content, &#39;ComeFrom&#39; => $comefrom );
curl_setopt($ch, CURLOPT_DNS_USE_GLOBAL_CACHE, false);
curl_setopt($ch, CURLOPT_URL, &#39;http://example.com/b.php&#39;);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_exec($ch);

送信されるデータを次のように変換します。配列 フォームは POST 経由で送信されるため、CURL は「間違った」エンコーディング「multipart/form-data」を使用します。これは、「b20d872f95765bfa7a85cce7b1b5ce80" のようなフォームを使用して操作を完了できます。試してみてください。現時点では、"b.php" は $_POST 経由でデータを受信できません。

したがって、正しいアプローチは、上記のコードの $data を配列から urlencode() でエンコードされたものに変更することです。

[推奨学習: PHP ビデオ チュートリアル ]

以上がPHP CURL POSTエラーの問題を解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。