人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

PHPでユーザーがブラウザのウィンドウを閉じる際にセッションを終了するにはどのようにしたらよいのでしょうか。
一度session_destroy()用の他のページに飛ばしてjavascriptなどでウィンドウを閉じることは思いついたのですが、できたらブラウザの「×」(閉じるボタン)などでウィンドウを閉じたときにもセッションが終了できるようにしたいと考えております。どなたかご教授頂けたら助かります。よろしくお願いします。

●質問者: shinwa-tokyo
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:JavaScript PHP ウィンドウ セッション ブラウザ
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● kn1967
●5ポイント

onUnloadイベントやOnBeforeUnLoadイベントを拾う。

JavaScript : onBeforeUnload

◎質問者からの返答

ご回答ありがとうございます。

onUnloadイベントやOnBeforeUnLoadイベントで

どのようにphpを実行するのか

もう少し詳しく教えていただけたら助かります。


2 ● gya0521
●40ポイント

サーバ上に session_destroy.php 等のスクリプトを設置しておいて、

以下のような感じにすれば良いのではないでしょうか。

<script type="text/javascript"><!--</p> <p>window.onunload = function() {</p> <p> httpObj = new XMLHttpRequest();</p> <p> httpObj.onload = displayData;</p> <p> httpObj.open("GET","session_destroy.php",true);</p> <p> httpObj.send(null);</p> <p>}</p> <p>// -></script>

◎質問者からの返答

ご回答頂きありがとうございました。

なんとなく方法がわかりましたので、

なんとかこの方法で進めてみたいと思います。

ありがとうございました。


3 ● kibitaki
●35ポイント

kn1967さんの解答と、shinwa-tokyoさん自身が述べておられる手法の組み合わせで

・onBeforeUnloadイベントをハック(js)

・session_destroy()を組み込んだPHPを非同期通信または別ウィンドウで呼び出し(js)

・session_destroy()実行(PHP)

・必要があれば結果を別ウィンドウにreturn(PHP)

・さらに必要があればreturn値を別ウィンドウで拾って処理(js)

となります。

◎質問者からの返答

ご回答ありがとうございます。

この方法で進めてみます。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ