ブラウザの戻るボタンを無効に

[上に] [前に] [次に]
みく 2000/04/02(日) 02:36:03
ブラウザの戻るボタンを無効にできる方法はありますか?

echo 2000/04/02(日) 02:37:33
ありません。

echo 2000/04/02(日) 02:40:23
すいません。
ブラウザを自作,もしくは改造すれば可能ですね。

Phine 2000/04/02(日) 08:47:04
無効っぽくするのは、 <META 〜
とか色々ありますけど、多くの場合利用者に嫌われます。
検索が直ったら過去ログを参照してみてください。

みく 2000/04/02(日) 13:49:58
自分のウインドウのステータスバー(?)を無くす方法でもいいんですけど・・・
会員登録のスクリプトを書いているんだけど、2重登録のチェック部分
を軽くしたいんです。ちなみに言語はPHP+SQL。
サーバーのデータベースアクセスの負担の軽減のためクライアントで
制限をかけたいとおもったんですが、嫌われますか?

ふじ 2000/04/02(日) 13:55:13
>2重登録のチェック
厳密には DB の方でやればいいとして、簡単に2重登録を防ぐなら、
クッキーを使ったらどうでしょう?
最初の登録時に クッキーを発行して、DBに問い合わせる前に
クッキーを持っているかどうかを見る。

みく 2000/04/02(日) 14:48:24
一旦サブミットした後サーバーからの反応が遅かったら、もう一度クリックするとか、ブラウザで戻るを押してもう一度サブミットし直すとか
されますよね。当然セッション管理の必要上クッキーは使いますが、それだけでは?もちろんクッキーを拒否するクライアント用にはフォームのhidden属性でMD5でhash化したセッションIDを持たせてます。会員制サイトでパーミッションの許可不許可だけでなく、管理者、スタッフ等5段階程度の権限の区別もつける必要があるので・・・
ちなみに会員数は6桁です。
データベース側で最終チェックするのは当然としても、エラー通知をだすまえにエラーを出させないのがよいWebプログラムだと思っています。
ただ、クライアントサイドのプログラム、たとえば、javascript等はいままで信用してないこともあり避けてきたんですが、
やっぱりサーバーで全て処理するのは、重くなっちゃうんですよね。

ふじ 2000/04/02(日) 15:46:18
JavaScript + 隠しフレームを使って、
サブミット時に隠しフレームの変数を使ってフラグを立てることで
二度押し防止は出来るかと思います。

main.html ----------------------------------------------
<SCRIPT language="JavaScript">
function check_flag(){
    if( parent.hide_frame.submit_flag == 1){
        alert("二度押し禁止");
        return false;
    }else{
        parent.hide_frame.submit_flag = 1;
        document.forms[0].submit();
    }
}
</SCRIPT>

<FORM>
<INPUT type="button" onClick="check_flag()">
</FORM>

frame.html----------------------------------------------
<FRAMESET cols="100%, *">
<FRAME name="main_frame" src="main.html">
<FRAME name="hide_frame" src="hide.html">
</FRAMESET>

hide.html----------------------------------------------
<SCRIPT language="JavaScript">
submit_flag = 0;
</SCRIPT>

こんな感じで。
#フラグをクリアしてやらないと、二度とサブミット出来なくなっちゃいますが。

みく 2000/04/02(日) 16:32:35
ありがとうございます。
いま、過去logの検索をしてみたんですが、
この件と似たようなことが、度々話題になっていたんですね。
この質問を書き込んだ時点では、たしか検索できなかったので、
失礼しました。
やはり、戻るボタンの使えないページは評判悪いみたいですね。
よくよく考えてみれば、javascriptを無効にしているクライアント
もいますんで、サーバー側での処理は省くことはできませんよね。
ふじさんの方法も含め過去logも検討して処理ロジックを練り直して
みます。戻るボタンは無効にしない方向で考えてみます。
ありがとうございました。

みく 2000/04/02(日) 16:33:18
[[解決]]
解決チェックをいれわすれました。
ごめんなさーい。

[上に] [前に] [次に]