for Web/PHP

세션(session)값을 이용한 게시글 조회수 중복 막기

Heavening 2008. 7. 15. 17:41
반응형
<?
  session_start(); //이 문장은 맨위에 들어가야함
  $board_name = "게시판의 이름"; //이것은 게시판들의 중복을 막기위한 값입니다.
                                                //예를들어 자유게시판 1번글을 읽었는데
                                                //공지사항 1번글을 읽었을때도 조회수 중복이 막히면 안돼겠죠??
  $id = "게시판글의 고유번호"; //이것이 있어야 어떤글을 읽었는지 조사할 수 있겠죠?

  session_register("cnt_list"); //어떤 게시물을 봤는지 저장할 세션입니다.
  $cnt_list_dummy = explode(";",$cnt_list); //현재 세션에 있는 내용을 조각냅니다.
  $board_cnt_ok = 0; //조회수를 올려도 되는지 저장하는 변수를 초기화합니다.
  for($i = 0; $i < sizeof($cnt_list_dummy); $i++)
  {
   if($cnt_list_dummy[$i] == $board_name."_".$id) //조각낸 게시물과 일치하는 세션값이 있는지 검사합니다.
   {
    $board_cnt_ok = 1; //만약 있다면 현재글을 이미 읽다다는 표시를 해둡니다. 저는 0과 1로 표현했어요~
    break; //반복문을 멈춥니다.
   }
  }

  if($board_cnt_ok == 0) //검사한 값에 조회한적이 있는지 검사합니다.
  {
   //만약 이글을 처음 조회하는것이면 아래를 실행합니다.
   /*여기에는 조회수를 +1하는 소스를 넣어두세요.
   프로그램 짜시는 분마다 다르기 때문에 이부분은 생략입니다^^;*/
   $cnt_list .= ";".$board_name."_".$id;
  }
?>

반응형