特定のユーザーセッション(サイトから禁止されているユーザーセッション)の設定を解除することはできますか? 各セッションにはユーザーのユーザー名が含まれています。php session unset
または、セッションをデータベースに書き込む唯一の方法で、ユーザーがそのレコードから削除されているかどうかを確認しますか?
ありがとうございます。
特定のユーザーセッション(サイトから禁止されているユーザーセッション)の設定を解除することはできますか? 各セッションにはユーザーのユーザー名が含まれています。php session unset
または、セッションをデータベースに書き込む唯一の方法で、ユーザーがそのレコードから削除されているかどうかを確認しますか?
ありがとうございます。
データベースからユーザーを削除するだけです。
ログイン資格情報を確認しているとします。
そうのようなあなたのセッションにタイムアウトを追加することができます。
define('SESSION_EXPIRE', 3600 * 5); //5 hours
if (!isset($_SESSION['CREATED'])) {
$_SESSION['CREATED'] = time();
} else if (time() - $_SESSION['CREATED'] > SESSION_EXPIRE) {
session_regenerate_id(true); // change session ID for the current session an invalidate old session ID
session_destroy();
session_start();
$_SESSION['CREATED'] = time(); // update creation time
}
PHPは、セッションIDが発行されているかどうかを追跡していません - セッションクッキーは、要求とのsession_start上で来るとき()が呼び出されると、そのセッションのID(sess_XXXX)で指定されたファイルをセッション保存ディレクトリで探してロードします。
ログインシステムでユーザーの現在のセッションIDが記録されていない限り、ユーザーのセッションを含むファイルの保存ディレクトリをスキャンしてファイルを削除する必要があります。幸いなことに、それはのような単純なもので行うことができます。
$session_dir = session_save_path();
$out = exec("rm -f `grep -l $username $session_dir/*`");
あなたはおそらく安全/もう少し安全な何かをしたいと思いますが、それはそれの基本です。
私は、あなたがコメントすることを許可する前に、PHPにデータベースを読み込ませ、その人物がパーミッションを公開しているかどうかを確認するのが最善の方法だと思います。エラーでない場合はエラーを返します。
Facebookが行うもう1つのことは、数分ごとにPHPファイルをチェックするAJAX呼び出しがあることです。 PHPファイルは、ユーザーがログオンしているかオフになっているかを戻し、ログオフされている場合、Javascriptはそれらをページ外にリダイレクトします。
http://php.net/manual/en/function.session-destroy.phpユーザーノートには解決策があります –