2012-03-10 22 views
0

私は人のログインとセッションが作成されたサイトを持っています。セッションが終了したときのPHP +ログアウトメンバー

私が気づいたことは、あなたがサイトを長時間放置すると(正確な時間枠がわからない)、セッションは終了しますが、メンバーはまだサイトに残っています。彼らはまだクリックして周りをナビゲートすることができます、そして、私はこれがDBにいくつかの無意味なデータをもたらしたと思います。

私はSESSIONが終了したときにユーザーをログアウトすることについてアドバイスを探していました。 私はこのようなコードを見てきました。

<?php if(!isset($_SESSION[]) {header(loginpage.php);}?> 

上記のコードを書くには良い方法がありますか?

このコードはどこに配置する必要がありますか?ナビゲーションメニューや実際にはユーザーがクリックできる場所にありますか?

最後に、SESSIONが自然に期限切れになるときを理解する方法があります。タイムレフトなどを見るためにスクリーンに印刷できるSESSION変数がありますか?

<?php if(!isset($_SESSION[]) {header(loginpage.php);}?> 

セッションが開始された後$_SESSION[]が自動的に存在するため、それは十分ではありません:あなたはすでにあなたのコードと、その方向に向かって、セッションを検証する必要があるが、それは十分ではありません

おかげ

答えて

1

(PHPのセッションメカニズム、session_startを参照)。代わりに

、セッション内のuserIDを保存した場合、1かどうかを確認:セッションは本当に有効期限が切れた場合

isset($_SESSION['userID']) 

を、それは設定しないでください。

0

私は上記の答えに同意します。私は、あなたのアプリケーションがどのようにこれがどこに属しているのかを表現する方法に依存すると言います。画面に何らかの出力が出る前に私はあなたの呼び出しsession_startを仮定しています。そして、ユーザがログインした後に設定されるuserIDのようなセッション変数をすぐにチェックしてください。指定した間隔でセッションクッキーをチェックするjsを書くこともできます(私は信じていますので、試してみてください)、変数が存在しないときはログインページにリダイレクトすることができます。 3番目の方法は、jsコードがあなたのためにセッションをチェックアウトするためにPHPスクリプトへのXHR呼び出しを行うことです。