1

ブラウザが閉じられたとき、またはブラウザのタブが閉じられたときにボックスに警告したい。私はいくつかのコードを持っていましたが、この1つの余分なメッセージが来ています..アラートボックスのどこから来ているのか知りたいです. 他のコードがある場合は、私に送信するか、何をすべきか教えてください..実際には、2回目のユーザーログインを避けたいです(このために、1つのセッションIDを作成し、その後、ユーザーがログインするたびにセッションIDを確認しますユーザーがログインできるかどうか、ユーザーがログアウトしたときにセッションIDも削除されますが、ブラウザまたはタブが閉じられた場合、セッションIDは削除されません.このため、その後、コントロールをajaxに送信したいことを検出したいcontroller ) だからこそ、1 つの余分なメッセージがどこから来ているのか知りたいのです。私の問題を解決してください..

<script type="text/javascript" >
var validNavigation = false;

function wireUpEvents() {

  var dont_confirm_leave = 0; //set dont_confirm_leave to 1 when you want the user to be able to leave withou confirmation
  var leave_message = 'You sure you want to leave?'
  function goodbye(e) {
    if (!validNavigation) {
      if (dont_confirm_leave!==1) {
        if(!e) e = window.event;
        //e.cancelBubble is supported by IE - this will kill the bubbling process.
        e.cancelBubble = true;
        e.returnValue = leave_message;
        //e.stopPropagation works in Firefox.
        if (e.stopPropagation) {
          e.stopPropagation();
          e.preventDefault();
        }
        //return works for Chrome and Safari
        return leave_message;
      }
    }
  }
  window.onbeforeunload=goodbye;

  // Attach the event keypress to exclude the F5 refresh
  $('document').bind('keypress', function(e) {
    if (e.keyCode == 116){
      validNavigation = true;
    }
  });

  // Attach the event click for all links in the page
  $("a").bind("click", function() {

    validNavigation = true;
  });

  // Attach the event submit for all forms in the page
  $("form").bind("submit", function() {
    validNavigation = true;
  });

  // Attach the event click for all inputs in the page
  $("input[type=submit]").bind("click", function() {
    validNavigation = true;
  });

}

// Wire up the events as soon as the DOM tree is ready
$(document).ready(function() {
  wireUpEvents();
}); 
</script>
4

1 に答える 1

0

ユーザーがブラウザーの設定で JavaScript を無効にしている場合、JavaScript コードを使用してユーザーを制限することはできません。

PHPとデータベース(mysql)を使用して処理する必要があると思います

ユーザーが登録/ログインすると、データベースのlogin_sessionテーブルに日時とともに新しいエントリが挿入されます。ログイン前に、エントリが存在するかどうか、存在する場合は最後のログインから経過した時間が存在するかどうか、最後のログインが5分以上の場合、または都合のよい時間にエントリを更新し、新しいセッションを作成してください。

こちらの同様の投稿を確認してください PHP /SESSION: Login one per user?

于 2013-04-01T07:38:45.673 に答える