| 제목 | No direct script access allowed 오류 질문입니다. | ||
|---|---|---|---|
| 글쓴이 | 수야디벨 | 작성시각 | 2013/08/01 22:27:17 | 
|  | |||
| 82페이지 따라하고 있는데 , url을 실행하면 No direct script access allowed 오류가납니다. (정확히 말하면 에러는 아닌데 화면에 저 문구만 보입니다.) 소스는 아래와 같습니다. * board.php <?php if(defined('BASEPATH')) exit('No direct script access allowed'); /**  * 게시판 메인 컨트롤러  */ class Board extends CI_Controller{   function __construct()   {    parent::__construct();    $this->load->database();    $this->load->model('board_m');   }   /**    * 주소에 메서드가 생략되엇을 때 실행되는 기본 메서드    */        public function index()   {    $this->lists();    }   /**    * 사이트 헤더, 푸터가 자동으로 추가된다.    *    */      public function _remap($method)   {   // 헤더 include   $this->load->view('header_v');   if( method_exists($this, $method) )   {    $this->{"{$method}"}();    }   // 푸터 include   $this->load->view('footer_v');   }   /**    * 목록 불러오기    */   public function lists()   {   $data['list'] = $this->board_m->get_list($this->uri->segment(3));   $this->load->view('board/list_v',$data);    }  } /* End of file board.php */ /* Location: ./application/controllers/board.php */ 그런데 , __construct() 함수 부분의  $this->load->database(); $this->load->model('board_m'); 와 if(defined('BASEPATH')) exit('No direct script access allowed'); 이것만 없애주면 , 'board_m' 모델이 로드 되지 않았다는 오류가 뜨긴뜨지만, 페이지엔 접근이 가능합니다. 앞의 main 컨트롤러는 아무 문제 없이 잘 테스트 했었는데, 이건 왜 그러는걸까요?ㅠ 혹시 몰라서 board_m 의 소스도 남겨봅니다. <?php if(defined('BASEPATH')) exit('No direct script access allowed'); /**  * 공통 게시판 모델  *  */ class Board_m extends CI_Model {  function __construct()  {   parent::__construct();   }  function get_list($table='ci_board')  {   $sql = "SELECT * FROM ".$table." ORDER BY board_id DESC";   $query = $this->db->query($sql);   $result = $query->result();   // $result = $query->result_array();   return $result;   } } /* End of file board_m.php */ /* Location: ./application/models/board_m.php */ | |||
| 다음글 | 오탈자인지 제가 잘못하고 있는건지 .. (2) | ||
| 이전글 | 오탈자는 아닌데 .. (1) | ||
| 
                                변종원(웅파)
                                /
                                2013/08/01 23:15:14 /
                                추천
                                0
                             | 
| 
                                수야디벨
                                /
                                2013/08/02 09:52:28 /
                                추천
                                0
                             
                                 이상하네요 .. 전 주소를 직접 입력하지 않거든요 ㅠ URL은 http://[ip]:[port] / 컨트롤러 이름 or URL은 http://[ip]:[port] / 컨트롤러이름/함수명 이런식으로 실행합니다 . 즉, URL은 http://[ip]:[port] /board or URL은 http://[ip]:[port] /board/index 이렇게 실행한다는 이야기인데, 그래도 저렇게 나옵니다 ㅠ 근데 , 이상한건 todo 프로젝트당시 main은 아무런 이상없이 잘 된다는건데 .. 일단 글은 적어 놓고 저도 제 나름대로 왜 그런지 한번 찾아보겠습니다만 그 define('BASEPATH') 할때 이 BASEPATH를 어디서 설정하는건가요? 이 경로가 뭘로 찍히나 확인하고 싶은데 찍을수 있는 방법이 있을까요? PS.그리고 전 책처럼 매 프로젝트 마다 새롭게 CI를 설치하는게 아니라, 그냥 CI 하나에 컨트롤러추가해서 사용하고 있거든요 그래서 controller 폴더에 board.php 와 main.php( Todo프로젝트용) 두개가 다 있는데, 이 때, main은 http://[ip]:[port] /main 으로 잘 실행이 되나 http://[ip]:[port] /board 는 에러문구가 나온다는거고, 또한 , main의 안쪽 소스만 (컨트롤 명 빼고) 복사해서 board에 붙여 넣기 해봤는데, 그래도 board는 안되네요 ..;; ?? 정말 이해할수 없는 현상입니다 . 컨트롤러 이름만 다르고 내용은 main이랑 똑같이 붙여 넣으면 될줄알았는데, 어쩌면 소스문제가 아닌걸까요? | 
| 
                                수야디벨
                                /
                                2013/08/02 10:08:45 /
                                추천
                                0
                             
                                 아~  왜인지 드디어 찾아 냈습니다 ;; 로드되는 모델 부분에서 if(!defined('BASEPATH')) exit('No direct script access allowed'); 이부분이 if(defined('BASEPATH')) exit('No direct script access allowed'); 이렇게 되어 있었네요 .. 아나 ..ㅋㅋㅋ 소스를 직접 손으로 치다보니 이런 오류가 .. 왠지 허무한 느낌입니다 ㅠ 웅파님 답변감사합니다 ~ | 
83페이지 1번에 이유가 설명되어 있습니다.