1

たまたまどこかで読んだ記事。彼らはsession_idを使用して、ログインに成功したすべてのユーザーのログインとログアウト時間を一時テーブルに格納しています。つまり、セッションが破棄されると、テーブルは削除されます。では、なぜ彼らはテーブルを作成しているのですか??

一時テーブルの使用はありますか? そして、なぜ session_id を使用する必要があるのですか??

ログインおよびログアウト一時テーブルでの session_id の他の用途は何ですか?? (一時テーブルでのsession_id、ログイン、ログアウト時間の接続と使用を理解できません。)

4

4 に答える 4

2

2 番目のテーブルを使用する代わりに、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

ユーザーがログインすると、ID が $_SESSION 変数に保存され、ログイン タイムスタンプが更新されます。

UPDATE `Users` SET `Login` = NOW() WHERE `Id` = id_stored_in_session;

そして、彼がログアウトするときは、上記と同じコマンドを使用しますが、Logout

于 2009-08-16T19:05:33.607 に答える
0

彼らは(を使用してsession_set_save_handler)セッション情報を格納するために一時テーブルを使用しているに違いありません。これは良いことです。セッション情報は非常に高速に変更され、多くの場合、一時テーブルはそのようなソリューションに最適です。

そして多分あなたは一時的に記憶と混同しましたか?メモリテーブルはハードドライブに保存されず、データは再起動時に失われます。これはセッション情報に適しています。

于 2009-08-19T09:17:49.143 に答える
0

「TEMPORARYテーブルは現在の接続にのみ表示され、接続が閉じられると自動的に削除されます。」オリジナル

したがって、一時テーブルは絶対に使用できません。Crisのソリューションに投票します。

于 2009-08-17T09:16:58.933 に答える
0

セッション ID は、ユーザーがログインしているかどうかを認識するのに非常に役立ちます。

ユーザー名、セッション ID、recentaccesstime を使用してログイン テーブルを作成するだけです。

ユーザーが新しいページを要求するたびに、セッション ID とユーザー名が一致しているかどうかを確認してください。

それらが一致していた場合は、recentaccesstime を更新するだけです。

recentaccesstime が 60 分を超える場合、ユーザーをサイトからログアウトさせ、ログイン テーブルからそのユーザーのエンティティを削除することができます。

www.addressinformer.com

于 2010-08-29T05:42:25.643 に答える