この記事では、ユーザーが同じデータを繰り返し送信することを防ぐために Cookie を使用する方法についての解決策を紹介します
その原理は
です。
データが上記の 2 つの検証に合格した場合、データは合法かつ有効であることを意味します。このとき、送信されたデータを文字列に連結し、MD5 で暗号化して MD5 値を取得します。次に、ユーザーが次回フォームを送信するときに、この値をクライアントに渡します。 Cookie 内の MD5 値を読み取り、比較します。それらが同じであれば、ユーザーが 2 回送信したフォームは同じであると結論付けることができます。そうでない場合は、Cookie を置き換えます。
コードは次のとおりです | コードをコピー |
//…… $lastthash = $HTTP_COOKIE_VARS["lastthash"] // 最後の Cookie 値セットを読み取ります ; if(count($HTTP_POST_VARS)) { $long = ""; While(list($key,$value)=each($HTTP_POST_VARS))$long.=$value; $ハッシュ = md5($long); setcookie("lasthash",$hash,time()+60*60*24*30) //クッキーをリセット } if($lasthash!=$hash) { // 2 つの MD5 値が異なる場合は、データに対してさらに操作を実行します } 他 { // 2 つの MD5 値が同じ場合、送信が失敗したことをユーザーに通知します } //…… ?> |