접속기록
평상심NZ
9개월 전
조회 1,372
접속자 기록을 기록을 남기기 위해서 아래 코드를 넣었습니다.
이것은 하루에 여러번 방문해도 한번만 기록에 남기려고한 것입니다.
</p>
<p>// 방문자 정보 가져오기
$ip_address = $_SERVER['REMOTE_ADDR'];
$user_agent = $_SERVER['HTTP_USER_AGENT'];
$visit_date = date('Y-m-d');</p>
<p>// 동일 사용자 중복 체크
$sql = "SELECT COUNT(*) AS count FROM visitor_records WHERE ip_address = '{$ip_address}' AND user_agent = '{$user_agent}' AND access_date = '{$visit_date}'";
$result = $conn->query($sql);
$row = $result->fetch_assoc();</p>
<p>if ($row['count'] == 0) {
// 중복되지 않은 경우에만 기록
$sql = "INSERT INTO visitor_records (ip_address, user_agent, access_time, access_date)
VALUES ('{$ip_address}', '{$user_agent}', NOW(), '{$visit_date}')";
if ($conn->query($sql) === TRUE) {
// 세션에 기록 상태 저장
$_SESSION['bookcafe'] = true;
} else {
error_log("Error: " . $conn->error);
}
}</p>
<p>
그런데 디비의 접속 기록을 보니
http://sir.kr/data/editor/2501/3526878085_1737312443.5341.png" />
하난의 IP에 거의 같은 시간으로 6개가 기록되었습니다.
user_agent가 다 다른데, 이데 어덯게 된 것인지 아시는 분이 계실까요?
댓글을 작성하려면 로그인이 필요합니다.
답변 3개
9개월 전
기기까지 체크해서 그러신거 같네요.
아이피는 같지만 기기는 다르게 체크되니 아이피 별로 하실려면
$sql = "SELECT COUNT(*) AS count FROM visitor_records WHERE ip_address = '{$ip_address}' AND user_agent = '{$user_agent}' AND access_date = '{$visit_date}'";
에서
user_angent 빼시고 시간도 동일 시간이 아닌 날짜로 비교하게 쿼리문을 변경하셔야 할 거 같습니다.
로그인 후 평가할 수 있습니다
답변에 대한 댓글 2개
�
웅푸
9개월 전
$sql = "SELECT COUNT(*) AS count FROM visitor_records WHERE ip_address = '{$ip_address}' AND access_date = '{$visit_date}'";
�
평상심NZ
9개월 전
@블랙캣77님 감사합니다.
@웅푸님 자상하시네요. 감사합니다.
@웅푸님 자상하시네요. 감사합니다.
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인