안녕하세요~
조회수가 올라가게 하는 방법을 근본적으로 막을 방법은 사실 없습니다. 무조건 로그인한 상태에서 조회한 회원의 아이디를 기록하여 나중에 비교하지 않는 이상 달리 방법은 없습니다. 그렇다고 그런 정보까지 모두 DB에 저장하고 다시 조회하는 것은 배보다 배꼽이 더 커지는 일 같습니다.
그래서 비록 근본적인 방법은 아니지만 쿠키를 사용합니다. 특정 게시물을 조회할 때, 그 게시물의 번호를 쿠키로 굽습니다. 그러면 다음에 그 게시물을 조회할 때 쿠키가 있는지 확인한 다음 쿠키가 있으면 조회수를 올리지 않고, 없을 때만 조회수를 올리면 됩니다.
물론 이 방법도 쿠키를 직접 삭제하거나, 다른 이유로 인해 삭제될 경우에는 조회수가 그냥 올라갑니다. 그리고 쿠키 유효기간을 하루로 해 놓으면 24시간 이후에 보면 또 올라가고... 그래서 쿠키 유효기간을 1년으로 해놓기도 합니다. 그런데 굳이 이렇게까지 할 필요가 있을까요?^^
예를 들어 제로보드에서는 이렇게 합니다.
// 현재의 글 번호에 해당되는 쿠키 이름을 정의함.
$cookie_name=$setup[no].$no;
if(!$zeroboard_readed[$cookie_name]) // 만약 그 쿠키가 없다면
{
mysql_query("update $t_board"."_$id set hit=hit+1 where no='$no'"); // 조회수를 올리고
setcookie("zeroboard_readed[$cookie_name]","readed",time()+60*60*24*365); // 쿠키를 굽습니다.
}
아직 이곳 강좌에서는 쿠키를 굽는 방법을 설명해놓은 것이 없어서 다소 어려울 수가 있습니다.
그리고,
이름을 길게 쓸 때 ?/p>가 왜 붙을까요???
그건 소스를 봐야 알 듯.... 말씀만으로는 이해하기가 좀 어렵습니당...
댓글 4
조회수가 올라가게 하는 방법을 근본적으로 막을 방법은 사실 없습니다. 무조건 로그인한 상태에서 조회한 회원의 아이디를 기록하여 나중에 비교하지 않는 이상 달리 방법은 없습니다. 그렇다고 그런 정보까지 모두 DB에 저장하고 다시 조회하는 것은 배보다 배꼽이 더 커지는 일 같습니다.
그래서 비록 근본적인 방법은 아니지만 쿠키를 사용합니다. 특정 게시물을 조회할 때, 그 게시물의 번호를 쿠키로 굽습니다. 그러면 다음에 그 게시물을 조회할 때 쿠키가 있는지 확인한 다음 쿠키가 있으면 조회수를 올리지 않고, 없을 때만 조회수를 올리면 됩니다.
물론 이 방법도 쿠키를 직접 삭제하거나, 다른 이유로 인해 삭제될 경우에는 조회수가 그냥 올라갑니다. 그리고 쿠키 유효기간을 하루로 해 놓으면 24시간 이후에 보면 또 올라가고... 그래서 쿠키 유효기간을 1년으로 해놓기도 합니다. 그런데 굳이 이렇게까지 할 필요가 있을까요?^^
예를 들어 제로보드에서는 이렇게 합니다.
// 현재의 글 번호에 해당되는 쿠키 이름을 정의함.
$cookie_name=$setup[no].$no;
if(!$zeroboard_readed[$cookie_name]) // 만약 그 쿠키가 없다면
{
mysql_query("update $t_board"."_$id set hit=hit+1 where no='$no'"); // 조회수를 올리고
setcookie("zeroboard_readed[$cookie_name]","readed",time()+60*60*24*365); // 쿠키를 굽습니다.
}
아직 이곳 강좌에서는 쿠키를 굽는 방법을 설명해놓은 것이 없어서 다소 어려울 수가 있습니다.
그리고,
이름을 길게 쓸 때 ?/p>가 왜 붙을까요???
그건 소스를 봐야 알 듯.... 말씀만으로는 이해하기가 좀 어렵습니당...