各ビューをと呼ばれるテーブルに記録するように設定しているquestion_views
ので、各ユーザーは1回だけカウントできます。
しかし、私には問題があります。現在、ログインしていないときは、未登録の人(またはログインしていない人)を識別する方法がないため、ビュー数が増え続けます。
これは、ユーザーが表示するときにデータベースにユーザーを入力する方法です。
function add_view($user, $question) {
$ts = time();
$check = mysql_num_rows(mysql_query("SELECT * FROM question_views WHERE user='$user' AND question_id=$question"));
if($check==0) {
mysql_query("UPDATE questions SET views=views+1 WHERE qid=$question");
mysql_query("INSERT INTO question_views (user,question_id,date) VALUES ($user,$question,$ts)");
}
}
ユーザーがログインしていない場合$_SESSION['userid']
(関数が呼び出されたときに渡されるもの)は存在しません。
未登録の人を含め、各視聴者を1回だけカウントする視聴回数システムを作成するための良い方法は何でしょうか。
編集:もちろん、それを確実に行う方法はありません。しかし、少なくともある程度はそれを行う方法があります。