一時テーブルでのPHP、ログインおよびログアウト時間?
質問
私はどこかの記事を読んで。彼らはSESSION_IDストアに一時テーブルでログインしているユーザーのすべての成功のためのログインおよびログアウト時間を使用しています。セッションが破壊されたら意味し、テーブルは削除されます。なぜ彼らは、テーブルを作成している??
一時テーブルの任意の使用はありますか?そして、なぜ?? SESSION_IDを使用する必要があります。
何SESSION_IDの他の用途は、ログインしていると、一時テーブルをログアウト?? (私はちょうどカントは一時テーブル内のsession_id、ログインおよびログアウト時の接続と使用を考え出した。)
解決
の代わりに第二のテーブルを使用するのでは、この情報を保存するために、ユーザーテーブルを使用しない理由は?
Usersテーブルます:
CREATE TABLE `Users` (
`Id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`Username` VARCHAR(32) NOT NULL,
`Password` CHAR(32) NOT NULL,
`Login` TIMESTAMP DEFAULT 0,
`Logout` TIMESTAMP DEFAULT 0,
PRIMARY KEY (`Id`),
UNIQUE KEY (`Username`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1
今際の店でユーザがログイン彼の$ _SESSION変数のidとログインのタイムスタンプを更新します:
UPDATE `Users` SET `Login` = NOW() WHERE `Id` = id_stored_in_session;
、その後、彼は
上記が、Logout
上から同じコマンドを使用してログインしたときに 他のヒント
「一時テーブルは、現在の接続に表示され、接続が閉じられたときに自動的に削除されます。」 の(元の)の
だから、一時テーブルは間違い無行くではありません。私はクリスのソリューションに投票でしょう。
私は、彼らがセッション情報(使用session_set_save_handler
)を格納するために一時テーブルを使用している賭け、これは良いです:一時テーブルは、このようなソリューションに最適です、セッション情報は、多くの場合、非常に高速で変更する
と多分あなたは、メモリとの一時的な混乱?メモリテーブルは、あなたのハードドライブ上に保存されていないと、データが失われ、再起動時に、セッション情報
のためfeasableありますセッションIDのユーザーがログインしているか否かを認識することは非常にuserfulされます。
ただ、ユーザー名、セッションID、recentaccesstimeでログインテーブルを作成します。
場合は、これまでユーザーは、セッションIDとユーザ名が一致しているか否か、新しいページのチェックを要求します。
彼らはただrecentaccesstimeを更新し、一致していた場合。
recentaccesstime>は60分である場合は、あなたは我々のサイトからログアウトし、ユーザーを設定し、ログインテーブルから自分のエンティティを削除することができます。