現在ログインしているユーザーの一覧を含むMySQLテーブルを実装しようとしています。これはこれを実装するための現在のロジックとコードです。私は現在直面しています問題は、しかし、もしということです
//Remove user from logged_in table.
$userId = $_SESSION['userId'];
$logoutQry = mysqli_query($dbc, "DELETE FROM logged_in WHERE user_id = '$userId'");
//Clear all of the saved session variables.
session_destroy();
:次のコードを実行し、ログアウトボタンをクリックすると
//Add the user_id to the logged_in table
$loggedInQry = mysqli_query($dbc, "INSERT INTO logged_in (user_id) VALUES ('$userId')");
:ログインで
は、次のコードを実行しますデフォルトの24分後にセッションがタイムアウトすると、$_SESSION['userId']
変数の設定が解除されるため、ユーザーは自動的にログアウトされますが、user_idはlogged_inテーブルから削除されません。
$_SESSION
タイムアウトで機能を実行できる方法はありますか?理想的には、現在のlogged_inテーブルに残っているので、セッションタイムアウト時にlogged_inテーブルから現在の$_SESSION['userId']
を削除したいと考えています。
期限切れになぜセッションの人生の時間を与えていないと、ユーザーがに要求した場合にのみ、それを終了します。
これは、あなたが正しい方向に軌道に乗るだろうか? –
また、ログアウトリクエストを検証することも重要です。ユーザーからの有効なリクエストです。 –