検索
ホームページphp教程php手册異なるオペレーティング システムで PHP が HTTP POST データを受信する際の問題

データに関する質問 |

ドキュメントバージョン

バージョン作成時作成者メモ 1.0.0606.12003-6-6 Zheng First Draft

実装範囲:

このドキュメントは、HTTP コンポーネント POST を受信する PHP ページのデータ問題について説明します。一般に、PHP は $HTTP_RAW_POST_DATA を使用して POST からバイナリ データ ストリームを受信するだけで済みます。しかし、私たちが遭遇したのはそうではありません。読み続ける前に、次の知識を理解していることを前提としています:n PHPn MSXML2.ServerXMLHTTPn HTTP POST

現象

このような問題が発生しました: MSXML2.ServerXMLHTTP インターフェイスを使用して、バイナリ データ ストリームを PHP ページに POST します。 Windows 2000 からの Linux Apache。 PHP ページの $HTTP_RAW_POST_DATA 変数は空であり、利用可能なデータはなく、sizeof($_POST) の値も 0 です。ただし、Windows 2000 IIS で PHP ページにデータを POST する場合も、$HTTP_RAW_POST_DATA を使用して通常のデータを受信できます。なぜ両者の間にこれほどの違いがあるのでしょうか?

環境情報

HTTP POSTリクエスタの開始・システム環境

Windows XP Professional (Service Pack 1) MSXML3.Dll (SP3 / バージョン番号: 8.30.9926.0) ServerXMLHTTP を呼び出すコードは次のとおりです。 MSXML2::IServerXMLHTTPRequestPtr pIXMLHttpRequest = NULL; hr = pIXMLHttpRequest.CreateInstance("MSXML2.ServerXMLHTTP"); hr = pIXMLHttpRequest->open(L"POST", bstrPHPURL, vtMissing, hr = pIXMLHttpRequest-> ;send(varData); POST を正しく受信する MS Windows 用の PHPリクエスト・システム環境

$HTTP_RAW_POST_DATA を使用してデータを通常受信する Windows 用 PHP インストール情報: PHP バージョン 4.2.2システムWindows NT 5.1 ビルド 2600Server APICGI このグローバル変数を使用するための関連設定: DirectiveLocal ValueMaster Valuealways_populate_raw_post_data00

POST リクエストを受信できない Linux 用 PHP · システム環境

$HTTP_RAW_POST_DATA で POST データを受信できない Linux 用 PHP インストール情報: PHP バージョン 4.3.2RC3System Linux atm2 2.4.18-1 #1 Wed May 29 10:45:23 CST 2002 i686 Server API Apache Registered PHP Streams php, http 、ftp このグローバル変数を使用するための関連設定: DirectiveLocal ValueMaster Valuealways_populate_raw_post_dataOnOn

詳細情報

論理的に言えば、php.ini で定義されている限り、常に $HTTP_RAW_POST_DATA 変数を設定します。always_populate_raw_post_data = On、$HTTP_RAW_POST_DATA 変数を使用して、データを受信します。少なくとも $_POST 変数はページへの POST のデータ サイズを測定できます。 「Empty $HTTP_RAW_POST_DATA」を PHP のバグとして報告しようとしている人を何人か見かけましたが、PHP のメンテナは間違いなくそうではないと言いました。

解決手順

Windows で PHP 4.2.2 を常に受信できる方法がわかりません。しかし、Content-Type が file であることを明示的に宣言すると、Linux 上の PHP 4.3.2RC3 は正常に POST データを受信できるようになります。ヘッダー情報を設定するコードは次のとおりです。 hr = pIXMLHttpRequest->setRequestHeader( _bstr_t ("file")); こうすることで、Windows 用の PHP 4.2.2 と Linux 用の PHP 4.3.2RC3 を使用して受信できるようになります。 $HTTP_RAW_POST_DATA、問題ありません。

概要:

$HTTP_RAW_POST_DATA が存在しない場合は、HTTP コンポーネントを呼び出して HTTP POST リクエストを送信するときに、Content-Type をファイルとして指定できます。

免責事項:

この文書に含まれる情報は、発行日の時点で議論されている問題についての zhengyun の現在の見解を表しています。この文書は zhengyun 側のコミットメントとして理解されるべきではなく、zhengyun は発行日以降に提供される情報の正確性を保証しません。 この文書は参照のみを目的としています。ユーザーは、適用されるすべての著作権法を遵守する必要があります。著作権法で規定されている権利を制限することなく、zhengyun および CSDN.Net の書面による明示的な許可がない限り、目的を問わず、いかなる形式または手段 (電子的、機械的、コピー、録音など) によっても複製を行うことはできません。この記事のいかなる部分もコピー、送信、保存、または検索システムに導入することはできません。



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

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境

DVWA

DVWA

Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。