CI 묻고 답하기

제목 접속자가 열어본 페이지 남기는 모델 만들었는데 문제가 좀 ㅠ_ㅠ
글쓴이 반페르시 작성시각 2012/04/25 09:15:22
댓글 : 6 추천 : 0 스크랩 : 0 조회수 : 16114   RSS
간단하게 url남기는건데 CI로 구성할려니깐 초보인 저에게 여러모로 힘이 드네요 ㅠ_ㅠ

원래 php에서 쓰는 소스는 아래와 같은데요.
include "/dbconfig.php" ;

 $conn = mysql_connect($mysql_host, $mysql_user, $mysql_password) ;
 $select_db = mysql_select_db($mysql_db, $conn) ;

 $query = "INSERT INTO fromurl(page, ip ,regdate) 
VALUES('".$_SERVER["PHP_SELF"]." ' , '$_SERVER[REMOTE_ADDR]', now())" ;
 @mysql_query($query);
 if($conn) mysql_close() ;

이걸 CI 모델에서 Fromurl_m이라는 모델을 만들어주고

<?php
class Fromurl_m extends CI_Model { 
 function __construct() {
  parent::__construct();
        //$this->fd_insert(); 
 }

    function fd_insert(){
  $db_az=$this->load->database('AD2012',true);
  $param=array(
   'page'=>$_SERVER['PHP_SELF'],
   'ip'=>$_SERVER['REMOTE_ADDR'],            
   'regdate'=>date('Y-m-d H:i:s') 
  );        
  $db_az->insert( 'mom_fromurl', $param );
    }
}
요렇게 넣고 autoload에서 $autoload['model'] = array('fromurl_m'); 이렇게 자동으로 로드되게 불렀는데

접속한 url이 쌓이긴 하는데 페이지에 들어있는 인쿠르드된 url까지 다 디비로 인서트 시켜요 ㅠ_ㅠ

접속한 페이지 url만 남기고 싶은데 뭐가 문제인지 모르겠습니다. 고수님들 조언 부탁 드려요
 다음글 [초보]마이그레이션 (2)
 이전글 restful 질문드립니다.. (2)

댓글

배강민 / 2012/04/25 10:09:10 / 추천 0
 위 모델을 호출하는 부분까지 보여주셔야 파악이 가능할듯 싶은데요
반페르시 / 2012/04/25 10:20:42 / 추천 0
모델 호출하는 부분이 config/autoload.php에서요 모델 오토 로드하는쪽이에요 ㅠ

/*
| -------------------------------------------------------------------
|  Auto-load Models
| -------------------------------------------------------------------
| Prototype:
|
| $autoload['model'] = array('model1', 'model2');
|
*/

$autoload['model'] = array('fromurl_m');


/* End of file autoload.php */
/* Location: ./application/config/autoload.php */

배강민 / 2012/04/25 10:29:37 / 추천 0
 아 저 fd_insert 주석이 사실을 오픈된 상태에서 autoload에 추가하신건가요?

그렇게 되있는 상황이라면 해당 페이지에서 호출하는 모든 것들에서 다 저 fd_insert가 실행될듯합니다. 해보진않았지만..ㅋ

autoload로는 저 모델을 추가해서 객체생성까지만 하고

필요하신 부분에만 실행하시던가.

모든 페이지 (인클루드 미포함)에서 돌게 하고자 하신다면 hook을 이용하거나해야할것 같은데요

아니면 공용 라이브러리로 빼서 autoload에 걸어도 될듯합니다.

또.. 인클루드라고 하시는게..

include 를 이용해서 다른 컨트롤러를 넣으신건가요?

이렇게 구성된 상태라면 인클루드된 파일안에서도 autoload가 일어나고, 부모 파일에서도 일어나니..그럴거 같은데요
한대승(불의회상) / 2012/04/25 10:44:57 / 추천 0
현재 DB에 쌓이고 있는 주소 형식이 어떤 형태인데...
어떤 형식으로 쌓였으면 좋겠다는 건가요?

예시를 보여주면 좀 더 도움을 드릴 수 있을것 같네요.
반페르시 / 2012/04/25 11:33:07 / 추천 0
KangMin님 답변 감사합니다. 저기 주석은 오픈 한 상태에서 오토로드하니깐 전부 나오는거 같습니다.ㅠ

참고해서 수정하겠습니다.

불의화상님 답변 감사합니다.

지금 원하는 url형식은 

/index.php/test/test_view 이런식인데 지금은 뷰페이지를 본다하면

/index.php/test/test
/index.php/test/sub_menu1
/index.php/test/sub_title.jpg 
/index.php/test/test_view   

이런식으로 쌓입니다.
한대승(불의회상) / 2012/04/25 13:15:26 / 추천 0
반페르시// 그렇군요.

autoload 에 집어 넣게 되면 모든 요청에 대해 CI가 모델을 로드 하게 됩니다.

컨트롤로 생성자에 모델을 로드 하는 부분을 집어 넣으면 해결 될 것  같습니다.