CI 묻고 답하기

제목 hook로 로그인 관리
글쓴이 녹차마왕 작성시각 2016/04/28 10:25:09
댓글 : 7 추천 : 0 스크랩 : 0 조회수 : 18914   RSS

안녕하세요. 어제 질문드렸던 hook문제가 해결이 안되어 질문드립니다.

로그인 체크 자동화 -> http://www.codeigniter-kr.org/bbs/view/tip?idx=8009&page=4&view_category=&lists_style=

위의 분과 비슷한것을 만드는중인데요.

1. application/config/config.php 에서 false -> true

2. hook 설정

$hook['pre_controller'] = array(        

'class'    => 'SiteFilter',      

 'function' => 'loadFilter',      

 'filename' => 'sitefilter.php',     

   'filepath' => 'hooks');

3. 해당 파일 작성

<?php    class SiteFilter extends CI_Controller  

 {        public function loadFilter()        

{            echo "test";        }  

 }?>

<script>alert("filter");</script>

 

 

위처럼하면 제가 적용하고자 하는 사이트에서 echo와 alert가 정상적으로 모든 페이지를 탈떄마다 확인됩니다.

그런데 해당 페이지들의 다른 item들이 사라지는 현상 -> db에서 가져오는 데이터를 보여주는 부분이 모두 없어집니다.

혹시 어떤 현상인지 알 수 있을까요?

 

 

 

 

 

 

 다음글 컨트롤러단이 너무 커질때 ???? (3)
 이전글 안녕하세요 코드이그나이터 입문자인데요.(퍼블리셔/프로그... (2)

댓글

kaido / 2016/04/28 10:27:51 / 추천 0
혹시 hook 에서 db를 불러오시나요? 
녹차마왕 / 2016/04/28 10:42:01 / 추천 0
kaido/ 아니요 위처럼 기본적인 echo "hi";만 하는 hook를 만들었습니다. 저같은 경우에는 빈 후크에서 echo를 추가하는 순간 echo는 매번 찍히는데 나머지 데이터들은 사라지는 현상이 있었습니다.
kaido / 2016/04/28 11:47:17 / 추천 0

아무래도 오해가 있지 않나 싶습니다.

훅 이라는 애는 [세션/쿠키]을 제외한 나머지 데이터는 유지하지 않습니다.

컨트롤러와 훅은 연결된 개념이 아니라, 훅은 별도로 프로세스가 돌아간다고 이해하셔야합니다.

db 데이터를 유지하고 싶다면 다시 불러오셔야 합니다. 

즉 매번 훅따로 컨트롤러 따로입니다.

kaido / 2016/04/28 11:53:27 / 추천 0

밑에 질문하신 글을 보니 hook 보다 route 쪽이 더 알맞는게 아닌지 생각 듭니다.

 

특정 주소를 직접 접근하면 접근이 안되게끔 하거나, 실제주소와 다르게 위장 한다는 말씀이신거죠?

 

그럼 route 와 _remap을 사용해서 주소를 위장하고, hook은 주소만 체크 하는 기능을 넣으시면 원하시는 기능이 될것 같습니다.

변종원(웅파) / 2016/04/28 13:06:28 / 추천 0
hook에서 화면 출력을 하지 마시고 세션이나 쿠키로 데이터를 저장했다가 뷰나 컨트롤러에서 출력해보세요.
푸하라 / 2016/04/28 13:37:59 / 추천 0

훅보다 코어사용이 좀더 좋지 않을까요???

MY_Controllers 를 상속시켜 좋고 처음 드러 올때 _remap 을 불러와 처리하면 되지 않을까 ??? 

녹차마왕 / 2016/04/28 14:03:14 / 추천 0
kaido, 웅파, 푸하라 // 모두 좋은 의견 감사합니다. 웅파님 말씀대로 echo 출력을 hook에서 안하고 로직만 실행할경우 문제없이 실행되어 로그인 유효성체크를 할 수 있었습니다. 모두 감사합니다!!