CI 묻고 답하기

제목 CI 세션 질문 드립니다.
글쓴이 꾸숑 작성시각 2013/02/13 05:48:23
댓글 : 3 추천 : 0 스크랩 : 0 조회수 : 14686   RSS
세션 값이 없을경우 기본값으로 10 으로 할려고 합니다.

일반적인 php는 아래와 같이 하면 오류없이 잘 작동 됩니다.
  if(!$_SESSION['level'])$_SESSION['level'] = 10;

그러나 CI세션 소스 같은 경우에는 아래의 오류 메세지가 출력 됩니다.
al error: Can't use method return value in write context in C:\APM_Setup\htdocs\board_tank\application\controllers\board.php on line 178

선배님들 부탁 드립니다.^^


    //글입력 폼
 function write_form(){
  if(!$this->session->userdata('level'))$this->session->userdata('level')=10;  //178줄
     if($this->session->userdata('level') > $this->admin_write_level){
   alert('글쓰기 권한이 없습니다.');
     }else{
   $this->load->view('top_view');
   $this->board_model->board_admin();
   $data['title']='글쓰기';
   $this->load->view('write_form_view',$data);
   $this->load->view('foot_view');
   }
 }
태그 세션,session
 다음글 ci activerecord sql injection ... (1)
 이전글 모델값을 컨트롤러에 읽는 방법 문의 드립니다. (5)

댓글

변종원(웅파) / 2013/02/13 08:03:55 / 추천 0
level세션은 로그인을 했을때 생성해야합니다. 로그인 안한 경우도 처리하려고 하시는 것 같은데 조건문을 추가하는게 낫습니다. 레벨 값이 없거나 레벨값이 admin_write_level보다 큰 경우로요. 아니면 로그인 체크 먼저하고 로그인되어 있을때 지금 로직을 타야합니다.
한대승(불의회상) / 2013/02/13 08:13:21 / 추천 0
$this->session->userdata('level')=10
이 부분이 문제군요.
함수에는 직접 값을 넣을수 없습니다.

level 에 10을 집어넣고 싶다면
$this->session->set_userdata('level', 10);

꾸숑 / 2013/02/13 18:35:55 / 추천 0

웅파// 정확하게 파악하셨네요 로그인 안한경우에 레벨값을 10을 줄려고 합니다.
여러 상황을 생각하니 복잡해지네요 로그인안한경우, 관리자인경우, 로그인했으나 글쓰기 레벨이 않되는경우,
글쓰기를 guest에게 허용한 경우등 경우의 수가 많은데....  어찌했든 다 처리 하고 말겠습니다.^^
앞으로도 좀 귀챤게 할것 같아요...  오늘부터 관리자페이지 작업 들어 가요~~~~


불의화상//바쁘신데도 불구하고 초보 입장에서 자세히 안내해 주셔서 넘 감사합니다.
아직 부족한게 많아서요 무데뽀로 할려고 하네요.....
해당 부분의 매뉴얼을 뚤어지라 봤는데도 이해를 못하고 질문하게 됐네요.... ㅜㅠ