2012-01-09 16 views
1

私たちのウェブサイトでは、$ _POSTがアクションページに空に中継されることがあります。

これは、日常的に提出されたフォームのおよそ%1〜2に対して起こります。これは現在、1日あたり約50〜100件の不正なフォームの提出です。

最初のページにデータがあることは確かです。 $ _POSTと$ _GETを使って、同じデータを同じ値で同時に送信しようとしました。 $ _GETは常にアクションページに到達しますが、$ _POSTは空になります。

多くの場合、このエラーはWebkitのブラウザで発生します。また、携帯電話のブラウザは、これにより多くの傾向があるようです。 IEブラウザでは、Webkitブラウザよりもこのようなことが少なくありません。 非常にまれに、Firefoxにも起こります。
PHPバージョン5.2.15
CentOSに5
はApache 2.2.3

我々が議論していることの一つは5.3.x.に私たちのPHPをアップグレードすることです:

現在の構成は、このようなものです これは合理的な試みのように聞こえますか?

これをどのようにデバッグすることができますか?

UPDATE:次のように 提出形式は次のとおりです。

<form action="submit.php?receiver_user_id=<?php echo $_SESSION['receiver_user_id'];?>&sender_user_id=<?php echo $_SESSION['user_id']; ?>" method="post"> 
    <textarea name="message_text" ></textarea> 
    <input type="hidden" name="receiver_user_id" value="<?php echo $_SESSION['receiver_user_id'];?> 
    <input type="hidden" name="sender_user_id" value="<?php echo $_SESSION['user_id']; ?> 
    <input type="image" name="submit" src="submit.png" value="submit"/> 
</form> 
+1

「私たちのウェブサイトでは、1年以上前に修正できなかったバグがあります。」 - 専門家を雇う時間は? –

+4

'post_max_size'よりも多くのデータをPOSTする可能性がありますか?詳細はhttp://stackoverflow.com/questions/8573664/phpempty-postをご覧ください。 – cmbuckley

+0

@MitchWheat驚くべきことに、専門家でさえ何も知りません – JamesHalsall

答えて

0

それは、フォームへの入力のいくつかの並べ替えが可能ということでしたあなたは空で1から2パーセントを判断すると仮定すると、失敗送信、またはデータベースのエントリは、それぞれ格納に失敗しますか?

[編集]それは愚かなように思える...私が言ったのは、フォームに同じ値を1000回送信しても1-2%はまだ空になるか、フォームが空になったと送信されましたか?
<?php header("Connection: close"); ?>
を追加

+0

空の$ _POSTをキャッチしてデータベースに送信します。しかし、エラーとそれに関する技術的な詳細について電子メールで通知されます。 – Haluk

+0

失敗した送信の「技術的詳細」に言及する価値のあるものはありますか?エラーを特定するためにどのようなコードを使用しますか? – kontur

+0

セッションからユーザー情報を取得します。セッションがアクティブかどうかを確認する。 SERVER_CONTENT_LENGTHを取得します。投稿が空の場合、これは空になります。また、SERVER_REQUEST_URIをチェックして、get変数がURLに含まれているかどうかを確認します。 – Haluk

関連する問題