개발 Q&A

제목 쿠키 질문 드립니다.
글쓴이 꾸숑 작성시각 2013/04/05 04:30:04
댓글 : 5 추천 : 0 스크랩 : 0 조회수 : 16191   RSS

게시판 카운터가 클릭할때마다 제한없이 1씩 증가되었는데요

게시판 관리자 설정에서 카운터 증가되는 시간을 제어 할려고 아래 소스를 작업하고 있습니다.
작동은 되는데 약간의 문제가 있어서 질문 드립니다.
첫 클릭시(쿠키가 미생성시)  오류 메세지가 출력됩니다. 작동은 이상없이 됩니다.
A PHP Error was encountered
Severity: Notice
Message: Undefined index: galley_10028
Filename: models/board_model.php
Line Number: 65


아래는 전체 소스입니다.
 //글읽기
    function read(){
      $num = $this->num;
   $this->db->where('num', $num);
   $query = $this->db->get($this->id);
   $row = $query->row_array();
     $data['num'] = $num;
  $data['wr_user_id'] = $row['wr_user_id'];
     $data['nick_name'] = $row['nick_name'];
     $data['subject'] = $row['subject'];
     $data['name'] = $row['name'];
     $data['content'] = $row['content'];
     $data['file1'] = $row['file1'];
     $data['view'] = $row['view']+1;
     $data['wdate'] = $row['wdate'];
     $data['ip'] = $row['ip'];
  $data['comments'] = $row['comments'];
  
 // 카운터 증가
  $cookie_data = $this->id."_".$num;
   if(!$_COOKIE[$cookie_data]){   //65라인
   $data2 = array('view' => $row['view']+1);
   $this->db->where('num', $this->num);
   $this->db->update($this->id, $data2);
   setcookie($cookie_data,time(),time()+(24*60*60));
   }
  //카운터 증가 끝
   return $data;
 }


한가지 추가로 질문드리면 위와 같이 쿠키를 사용하는것 보다
효율?적인 CI에서 지원되는 클래스나 함수 있는지요?
 

태그 게시판,카운터,쿠키,꾸숑
 다음글 웹호스팅에 대해서 질문 드립니다. 꾸벅~~ (5)
 이전글 보통 외부 php 파일은 어디에 저장하고 어디에서 불러... (5)

댓글

변종원(웅파) / 2013/04/05 10:21:15 / 추천 0
빈 쿠키를 먼저 생성하시고 사용하시면 됩니다.

if문에서는 쿠키 존재여부가 아니라 쿠키의 내용이 있는지로 체크하시면 됩니다.

다른 변수 미리 선언 안하고 if문 돌릴때와 동일합니다.
수야디벨 / 2013/04/05 13:42:39 / 추천 0
저도 공부하면서 느낀건데, 꾸숑님 같은 경우의 오류가 정말 많이 나더라구요.

그냥 무의식적에 코딩을 하다보면 if문 또는 foreach문을 비롯한 모든 비교하는 문장에 값이

없을 경우를 생각치 못하고 (또는 , 값을 view에 전달할때, 그 값이 없는거면 이 또한 오류가 나겠지요)

작업을 하게 되서 나중에 그 값이 빈 값이면 Undefined 이라는 지정되지 않았다는 오류가 나거든요.

그래서 전 어떠한 변수를 만들때면, 무조건 빈 값을 생성합니다. 그래야 나중에 오류가 좀 덜 나는것 같더라구요.

그리고 view에선 항상 값이 없을 경우의 예외처리를 해주고 .. 


꾸숑 / 2013/04/06 03:39:52 / 추천 0
웅파//감사합니다. 아래와 같이 해결했습니다.
수야디벨// 답변 감사해요~~~

   if(!isset($_COOKIE[$cookie_data])){
니삼 / 2013/04/08 04:41:55 / 추천 0
개인적으로 유저가 다룰수있는 쿠키 같은걸로 추천이라던가 조회수 체크하는건 비추천합니다.
조회는 딱히 민감한 부분이 아니긴 하지만 봇같이 쿠키 무시하는 애들이 주소 한번 긁어가면 조회수가 폭팔하는 경우가 가끔 생겨서 ㅋ
꾸숑 / 2013/04/08 12:17:16 / 추천 0
니삼//생각지 못한 문제가 있었군요
현재 기능 구현에 초점을 맞추고만 있었네요..
차후에 실력을 향상 시켜서 그러한 부분도 고려해서 만들어 볼게요..~~