안녕하세요
TIP 게시판
http://codeigniter-kr.org/bbs/view/tip?idx=12902&page=2&view_category=&lists_style=
의 글을 보고 모든 페이지에 로그인여부를 검사를 하려고 하는데요
1. Config 설정
$config['enable_hooks'] = TRUE;
2. /config/hooks.php
$hook['post_controller_constructor'][] = array(
'class' => 'Common',
'function' => 'checkPermission',
'filename' => 'Common.php',
'filepath' => 'hooks',
'params' => array()
);
3. /hooks/Common.php
class Common {
function checkPermission() {
$CI =& get_instance();
$CI->load->library('session');
$CI->load->helper('url');
if(isset($CI->allow) && (is_array($CI->allow) === false OR in_array($CI->router->method, $CI->allow) === false))
{
if (!$CI->session->userdata('userid')) // 로그인 여부를 세션을 이용해 체크한다.
{
redirect('/manager/auth'); // 로그인창으로 강제 이동
}
}
}
}
팁글과 같이 해주었는데요
페이지 접근시에
Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING, expecting ')' in /home1/intranet/public_html/application/config/hooks.php on line 14
라는 에러가 발생합니다.
문법이 잘못되거나 빠진 부분이 없는데 왜 이런 에러가 날까요?;;
에러의 hooks.php 14번 라인은
'class' => 'Common',
이 부분 입니다.
@수야디벨
네 원래 hook를 안쓰다가 로그인때문에 사용하려고 TIP 게시판의 글 내용에 있던 소스를 고대로 복사해서 사용했습니다
그래서 hooks.php 에 있는 내용은 2번에 있는 내용이 다입니다.
이것저것 테스트 해보니
$hook['post_controller_constructor'][] = array();
이런식으로 썼을때는 에러가 안나오네요.
배열에 내용이 들어갔을때 에러가 나는것 같습니다만...어디가 문제인건지
좀 더 테스트 해보니
$hook['post_controller_constructor'][] = array(
'class' => 'Common',
'function' => 'checkPermission',
'filename' => 'Common.php',
'filepath' => ''
);
filepath키에 값이 들어가면 에러가 나타나네요...코어쪽에도 경로 만들어주는 형태밖에 없는데 뭐가 문제일까요
자문자답
hooks 쪽에 ?> php 닫는 구문이 결정적인 문제였네요 ㅠㅠ
PSR-2 규칙의 중요성 이로군요 ㅎㅎ
시간 나시면 PSR-1 번과 2번을 한번 눈여겨 보시면 좋습니다.
https://www.lesstif.com/pages/viewpage.action?pageId=24445325
@kaido
감사합니다. 다시 한번 정독해야겠군요