-
- session_start();
- $k=$_GET['k'];
- $t=$_GET['t'];
- $allowTime = 1800;//アンチリフレッシュ時間
- $ip = get_client_ip();
- $allowT = md5($ip.$k.$t);
- if(!isset($_SESSION[$allowT]))
- {
- $refresh = true;
- $_SESSION[ $allowT] = time();
- }elseif(time() - $_SESSION[$allowT]>$allowTime){
- $refresh = true;
- $_SESSION[$allowT] = time();
- }else{
- $refresh = false;
- }
- ?>
-
コードをコピー
ie6 2回送信するときにも遭遇しました。おおよそ、submitの代わりに画像を使用する場合です。画像は 2 回送信されますが、送信ボタンだけであれば、2 回送信される状況に遭遇したことはありません。
今整理してみましょう:
方法は基本的に以前のものと同じです。
受信したページ 2.php は 2 つの部分に分割され、1 つの部分は送信された変数を処理し、もう 1 つの部分はページを表示します。
変数を処理した後、header( "location: ".$_SERVER[ 'PHP_SELF ']) を使用して自分のページにジャンプします。
この部分は判断する必要があります。ポスト変数がない場合はスキップしてください。もちろん、他のページにジャンプすることもできます。
他のページにジャンプしたり戻ったりするときに問題が発生するため、php ファイルで行うことをお勧めします。
前のページで渡された変数が要件を満たしていない場合は、強制的にリターンすることができます。
-
- <script></li>
<li>history.go(-1);</li>
<li></script>
コードをコピー
一般的な考え方。
2.phpプロセス
-
- if(isset($_POST))
- {変数を受け取る
- if(変数が要件を満たしていません)
- <script> </script> ;
- else
- 操作データ
- ...
- if (操作完了)
- header( "location: ".$_SERVER[ 'PHP_SELF ']);
- }
- javascript:window.history.forward(1);
- //-->
-
コードをコピー
|