나는 각 사용자가 한 번만 계산할 수 있도록 question_views
이라는 테이블에서 각보기를 기록하는 위치까지 설정했습니다.등록되지 않은 사용자의 조회수를 구현하는 방법은 무엇입니까?
그러나 문제가 있습니다. 현재 로그인하지 않은 상태에서 등록되지 않은 사람 (또는 로그인하지 않은 사람)을 식별 할 방법이 없으므로보기 수가 증가합니다.
나는 그들이 볼 때의 데이터베이스에 사용자가 입력하는 방법이 있습니다 :
사용자가 로그인하지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']
심지어 존재합니다.
등록되지 않은 사람을 포함하여 조회수 계산 시스템을 한 번만 계산할 수있는 좋은 방법은 무엇입니까?
편집 : 물론 그것을 신뢰할 수있는 방법이 아닙니다. 그러나 거기에 은 적어도 다소 좋은 방법입니다.
신뢰할 수있는 방법은 없습니다. IP 주소, 세션, 쿠키 또는이 세 가지 조합을 사용할 수 있습니다. 하루가 끝나면, 당신은 신뢰할 수 없다. – Corbin
확인. 그래도 downvote 무엇입니까? 누구든지 그것을 downvoted, 설명하는 시간을내어 주셔서 감사합니다. – Nathan
@Nathan'$ _SESSION [ 'userid'] = 'guest_'를 설정하면 시스템이 완전히 깨질 수 있습니까? uniqid();'로그인하지 않은 사용자에게 guest 사용자 ID가 주어 지도록 하시겠습니까? 물론 뷰 개수를 늘리려면 쿠키를 비활성화해야하지만 작동 할 수는 있습니다. – drew010