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