제목 | 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번에 이유가 설명되어 있습니다.