$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 件のコメント :
コメントを投稿