2012-02-24 3 views
0

私はいくつかの異なる雑誌のコンテンツが保存されるサイトを作成しています。ユーザーは質問と回答を使用して雑誌にアクセスします。複数のコンテンツへのユーザーのアクセスを追跡するにはどうすればよいですか?

アクセス権を取得すると、一定期間アクセスを続けていただきたいと思います。

私は、データベーステーブルがcookie_id、issue_id、および有効期限を保存できると考えています。ユーザーが最初の問題にアクセスすると、新しい一意のIDを含むCookieがコンピューターに保存されます。その一意のID、アクセスしたばかりのコンテンツの問題ID、有効期限はデータベースに格納されます。

別の問題にアクセスすると、新しいデータベースエントリが作成されますが、クッキーIDは再利用されます。

サイトに戻ったときに、関連するすべてのデータベースエントリを取得し、それらが期限切れになるまでユーザーが再訪問できるようにCookieが使用されます。

これを行うにはスマートな方法がありますか?

ありがとうございます!

答えて

0

クッキーの問題点は、クッキーが消去または破損する可能性があります(どちらもあり得ない可能性があります)。

しかし、あなたの解決策は基本的に私がやることです。ここで

は私が何をするのかである...

彼らはクッキーが自分のユーザーIDで設定されますログイン

(必要に応じて暗号化することができます)。私は日付/時刻/ランダム値の集約を使用しません。なぜなら、これらの値は、ユーザーが返すたびに異なる可能性が最も高いからです。

クッキーのIDが設定されているかどうかを確認します(追加のユーザー情報を取得する必要がなく、サーバーの負荷を軽減できる場合はデータベースクエリを保存することもできます)。

私はデータベーステーブルを使用して、以前の問題を読むためのさらなるアクセスのための参照としてそのユーザーIDを使用します。日付1、issue2:日付2、などユーザーの多くは、このようなissue1として指定された形式でデータをデータベースに1つのレコードにすべての情報を入れて挿入考えるがある(または予定)した場合。これはエントリを追加、更新、および/または削除するために更新するために1dbのクエリしか必要としません。

しかし、私は真剣にHTML5のローカルストレージ・ソリューションにチェック可能性がある。このために - 私はまだこれを使用するか、どれだけそれがサポートされているにチェックインしていません。

+0

ありがとうございます。アクセスは非常に短命(最大で数日、正確な値が設定されていないが)、私はおそらく、合理的なデータベースのサイズを維持するために一日一回、期限切れの鍵のデータベースのクリーンアップを実行することになるので。あなたの助けをもう一度ありがとう。 –

関連する問題