0

理由でセキュリティを導入する必要がある場合、Webサイトで作業しています。私のWebサイトは、10分間操作がないと自動的にユーザーをサインアウトします。動作は、非アクティブの約8分間で、jquery uiダイアログがポップアップし、ユーザーにタイムアウトが差し迫っていることを警告します。ユーザーは、サインインしたままにするか、今すぐサインアウトするか、何もしないかを選択でき、10分の終わりに強制的にサインアウトします。これは、タイムアウトし(マウス/キーボードイベントなし)、ユーザーが「アクティビティ」と見なす操作を行うたびにリセットするjavascriptコードスニペットを介して実現します。

私の問題は、これを単一のWebページで実行できるが、完全なドメインでこれを使用する方法がわからないことです。私もこの偉業を達成するためにクッキーを考えましたが、よくわかりません。誰かが私の仕事のために私が従うべきアプローチを私に提案することができれば、それは素晴らしい可能性です。コード例でbly

このタイムアウトスクリプトを、単一のWebページではなく完全なドメインで実行してください。おそらくCookieなどを使用しています。

4

3 に答える 3

1

javascriptに反対し、完全なPHPソリューションを作成することをお勧めします。

これは、各PHPページで10分後に有効期限が切れるCookieをユーザーに提供するだけで実現できます。そうすれば、Cookieは訪問のたびに更新され、10分後に戻ってきた場合、Cookieは失われ、システムはCookieを認識しなくなります。

また、セッションに対しても提案します。セッションは簡単に乱雑になる可能性があり、負荷分散のために複数のマシンに拡張する場合、管理がほぼ不可能になります。現実的な制作ツールではありません。

これをすべてのページと呼びます-これにより、既にCookieが存在するかどうかが確認され、存在する場合は、同じ値で10分間(60秒×10分)更新されます。'user'のCookie名は任意の名前に変更できます。

if(isset($_COOKIE['user'])){
     setcookie('user', $_COOKIE['user'], time()+60*10);

     //put your user validation code here to make sure the cookie is real
     //then you can put your logged in specific data under it.
}

そもそもユーザーを認証するには、おそらくユーザーがログインするときに、次のようにします。

setcookie('user', $value, time()+60*10);

そして、誰かをログアウトしたい場合は、これを行うことができます:

setcookie('user', '', 0);

頑張ってください!

于 2012-07-05T01:56:20.753 に答える
0

これを行うには、セッションCookieを10分後に期限切れになるように設定します。session_set_cookie_params()Cookieの期間を設定するために使用します(最初のパラメーター)。

session_set_cookie_params(600, '/', 'www.example.com', false, false);
session_start();

必ず前に呼び出してくださいsession_start()

次に、JavaScriptを使用してCookieのexpiresパラメーターを確認します。有効期限が近づいている場合は、同じJavaScriptを使用して、セッションの有効期限が近づいていることを警告するダイアログを表示します。

于 2012-07-05T01:55:27.513 に答える
0

この問題には、セッションやCookieを使用できます。それらを使用する方法は、Webサイトのすべてのページで、最初にCookie /セッションをチェックしてから、次に進むというものです。したがって、ユーザーが一度ログアウトしてWebサイトの別のページに移動しようとすると、そのユーザーは最初にログインする必要があり、その後、そのユーザーはセッションを利用できなくなるため、続行できます。

この種の何か-

<?php

if( $this->session->userdata('logged_in') == FALSE )
{
    // Login again 
}
else
{
    // Display the page
}

?>
于 2012-07-05T01:58:18.927 に答える