ページが更新されたときにフォームが繰り返し送信されないようにする方法

WBOY
リリース: 2016-06-13 13:16:37
オリジナル
967 人が閲覧しました

ページが更新されたときにフォームが繰り返し送信されないようにする方法
ページが更新されたときにフォームが繰り返し送信されないようにする方法!
コード、コメント、アイデアがあれば幸いです。ありがとうございます!


-----解決策---------
Cookie 処理を使用して、フォームの送信状況を記録します。次のコードを参照してください。

1.< 2.if(isset($_POST ['go'])){setcookie("tempcookie","",time()+30);
3.header("Location:".$_SERVER[PHP_SELF]); ;exit();
4.} if(isset($_COOKIE["tempcookie"])){
5.setcookie("tempcookie","",0);echo "すでにフォームを送信しています";
6.}? >
クライアントが Cookie を無効にしている場合、このメソッドは効果がありませんので、注意してください。

3.セッション処理の使用 PHP のセッション関数を使用すると、PHP フォームの繰り返しの送信を避けることもできます。セッションはサーバー側に保存され、次回この変数にアクセスすると、セッション変数を使用して送信された値を記録できます。フォームに一致しない場合は、ユーザーが繰り返し送信していると見なされます。次のコードを参照してください:

1.< ?php
2.session_start();// に基づいて乱数を生成します。現在の SESSION
3.$code = mt_rand( 0,1000000);
4.$_SESSION['code'] = $code;
5.?>ページフォームの非表示値のコードは次のとおりです:

1.< input type="hidden" name="originator" value="< ?=$code?>"> ;
受信ページの PHP コードは次のとおりです:

1.< ?php
2.session_start()
3.if(isset($_POST['originator '])) {
4.if($_POST['originator'] = = $_SESSION['code']){
5.// フォームを処理するステートメント。
6 は省略します。} else{
7.echo 'このページを更新したり、フォームを繰り返し送信したりしないでください。 ';
8.}
9.}?>

まだ掲載されていないメソッドが 2 つあります。http://www.phpnewer.com/index.php/Cjwt; /detail/id/356

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート