0

誰かがXを押したときに、ブラウザまたはウィンドウが閉じているときにphpスクリプトを呼び出す方法はありますか?

ログイン、ログアウトスクリプトがあります

$sql2 = "UPDATE `users` SET `loggedin` = '1' WHERE `username` = '$username' AND `password` = '$password' LIMIT 1 ";

これにより、SQL変数が1または0に変更され、その人がログオンしているかどうかが通知されます。

その変数が1で、他の誰かがログインしようとすると、ログインできなくなります。

しかし、私の問題は、誰かがログアウトせずにウィンドウを閉じた場合です。変数は1のままであるため、ログインできません。

4

2 に答える 2

0

GGioへの追加として;

このjQuery(JS)関数のようなものを使用してください

$(function () {
  $("a").click(function {
    window.onbeforeunload = null;
  });
});

その関数でAJAX呼び出しを行います。呼び出しが行われ、ブラウザが閉じた場合でも、サーバーはそれを処理し、返送するクライアントはありません。

したがって、出力を確認したり、ユーザーに検証を依頼したりすることはできないため、そこに配置するコードには注意してください。

より詳しい情報:

onbeforeunloadイベントのjQuery.ajaxが機能しない

http://eureka.ykyuen.info/2011/02/22/jquery-javascript-capture-the-browser-or-tab-closed-event/

http://zeeshanumardotnet.blogspot.co.at/2011/01/how-to-end-session-when-browser-is.html

于 2013-02-04T23:04:17.107 に答える
0

まず第一に、あなたのコードは今のところ sql インジェクションに対して脆弱であるため、ステートメントを準備することについて考える必要があります。

質問への回答として、次のことを試してください。

  1. ブラウザを閉じるイベントをキャッチする必要があるため、セッションを使用します。ブラウザが開くまでセッションは存続します。
  2. そうでない場合、セッションはjavascriptを使用して終了イベントをキャッチし(Googleの方法で)、DB内の目的のフィールドを更新するPHPスクリプトにajaxリクエストを送信します
于 2013-02-04T23:01:42.110 に答える