$headers = apache_request_headers(); // <- リクエストのヘッダ $postStr = file_get_contents('php://input'); // <- POSTデータ if($headers['Content-Length'] != strlen($postStr)){ echo 'bad post data'; }ここではechoだけど、システムではクライアントには異常を通知 してリトライなりエラーなりをしてもらう事になります。 これはまた違う機会で使うかもしれんので忘れずに覚えとこう。 因みに実験中にIE7でリクエストのヘッダにContent-Lengthが 含まれていないように見えたのは見間違えだろうか。。。
2009年8月16日日曜日
PHPでPOSTデータが失われる。
最近の話で送信されてきたリクエストが途中で切れてしまい、
POSTデータの一部が失われてしまうという現象にぶちあたりまし
た。一瞬それは無いだろうと思ってましたが、携帯のパケット通信
の場合とかはおおいにありうるな。
ただ、POSTデータが途中でどう切れてしまっているのかはサーバ側で
は全然わからない。正常かもしれんし、切れてしまっているかも
しれん。。。
て事をうんうん唸った結果リクエストのヘッダと生POSTが取得でき
るのが判ったので、HEADERのContent-Lengthとサイズ比較
をする事に。
登録:
コメントの投稿
(
Atom
)
0 件のコメント :
コメントを投稿