CI 묻고 답하기

제목 에러 질문드립니다.
카테고리 기타 솔루션
글쓴이 cheeseyummy 작성시각 2020/11/11 09:03:22
댓글 : 6 추천 : 0 스크랩 : 0 조회수 : 8513   RSS

컨트롤러

public function modify()
  {
      //경고창 헬퍼 로딩
      $this->load->helper('alert');


      if( @$this->session->userdata('logged_in') == TRUE )
      {
          //수정하려는 글의 작성자가 본인인지 검증
          $table = 'ci_board';
          $board_id = $this->uri->segment(4);

          $write_id = $this->Board_m->writer_check($table, $board_id);

          if ( $write_id-> user_id != $this->session->userdata('username')) {
              alert('본인이 작성한 글이 아닙니다.', '/index.php/Board/view/'.'ci_board'.'/'.$this->uri->segment(4));
              exit;
          }

   //폼 검증 라이브러리 로드
   $this->load->library('form_validation');

   //폼 검증할 필드와 규칙 사전 정의
   $this->form_validation->set_rules('subject', '제목', 'required');
   $this->form_validation->set_rules('contents', '내용', 'required');

   if ( $this->form_validation->run() == TRUE )
          {
              if ( !$this->input->post('subject', TRUE) AND !$this->input->post('contents', TRUE) )
              {
                  //글 내용이 없을 경우, 프로그램단에서 한번 더 체크
                  alert('비정상적인 접근입니다.', '/bbs/board/lists/'.'ci_board'.'/page/');
                  exit;
              }

              //var_dump($_POST);
              $modify_data = array(
                  'table' => 'ci_board', //게시판 테이블명
                  'board_id' => $this->uri->segment(4), //게시물번호
                  'subject' => $this->input->post('subject', TRUE),
                  'contents' => $this->input->post('contents', TRUE)
              );

              $result = $this->Board_m->modify_board($modify_data);

              if ( $result )
              {
                  //글 작성 성공시 게시판 목록으로
                  alert('수정되었습니다.', '/index.php/Board/lists/'.$this->uri->segment(3).'/page/');
                  exit;
              }
              else
              {
                  //글 수정 실패시 글 내용으로
                  alert('다시 수정해 주세요.', '/index.php/Board/view/'.$this->uri->segment(3).'/board_id/'.$this->uri->segment(5).'/page/');
                  exit;
              }

          }
          else
          {
              //게시물 내용 가져오기


              $data['views'] = $this->Board_m->get_view('ci_board', $this->uri->segment(4));

              //쓰기폼 view 호출
              $this->load->view('modify_v', $data);
          }
}
      else
      {
          alert('로그인후 수정하세요', '/index.php/Auth/login/');
          exit;
      }
  }

 

모델

public function writer_check($table, $board_id)
{
    $sql = "SELECT user_id FROM ".$table." WHERE board_id = '".$board_id."'";

    $query = $this->db->query($sql);

    return $query->row();
}

 

$board_id = $this->uri->segment(4); 이부분에서 var_dump($board_id);

찍어보았을때 NULL값이 배정됩니다.

$board_id = 해당 게시물 번호를 강제 할당시키면 제대로 가져옵니다.

쓰기부분하고 전부 잘가져오는데 왜 이부분에서는 못가져오는지 궁금합니다.


첨부파일 ScreenShot_20201111090124.png (13.4 KB)
 다음글 내가만든 라이브러리 (4)
 이전글 페이지 접속 시간과 이탈 시간 저장 (6)

댓글

PureAni / 2020/11/11 09:27:54 / 추천 0

uri_string 이 어떻게 되나요?

4번째에 값이 있나요?

cheeseyummy / 2020/11/11 09:33:40 / 추천 0

네 그렇습니다. view 부분도 segment 값을 4를 주고 사용중에있습니다. 

근데 값을 강제할당했을때 얻는거면 어차피 view 뿌려주는 부문을 수정을 하는 부분이니 

view의 board_id를 modify 로 값을 할당해주는걸 생각하고 있는데 혹시 맞을까요?

변종원(웅파) / 2020/11/11 09:35:43 / 추천 0
4번째 값이 없으니까 못가져오는걸 겁니다. 수정페이지 주소를 확인하세요.  
cheeseyummy / 2020/11/11 09:56:14 / 추천 0
/Board/modify/Board 이렇게 되어있습니다
PureAni / 2020/11/11 10:12:57 / 추천 0

1 : Board

2 : modify

3 : Board

4번이 없네요?

cheeseyummy / 2020/11/11 10:16:25 / 추천 0
아 어디서 오류났는지 정확하게 확인했습니다 감사합니다 그 다음오류로 가봐야할것같습니다 .다들 도와주셔서 감사합니다.