最近の話で送信されてきたリクエストが途中で切れてしまい、
POSTデータの一部が失われてしまうという現象にぶちあたりまし
た。一瞬それは無いだろうと思ってましたが、携帯のパケット通信
の場合とかはおおいにありうるな。
ただ、POSTデータが途中でどう切れてしまっているのかはサーバ側で
は全然わからない。正常かもしれんし、切れてしまっているかも
しれん。。。
て事をうんうん唸った結果リクエストのヘッダと生POSTが取得でき
るのが判ったので、HEADERのContent-Lengthとサイズ比較
をする事に。
$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が
含まれていないように見えたのは見間違えだろうか。。。
0 件のコメント :
コメントを投稿