CI 묻고 답하기

제목 URL 관련 문의
카테고리 CI 2, 3
글쓴이 미나리나물 작성시각 2017/08/31 14:07:22
댓글 : 9 추천 : 0 스크랩 : 0 조회수 : 12064   RSS

안녕하세요.

다름 아니라 URL 주소에 관해 질문 드립니다.

현재 uri segment를 사용해서 db를 불러오게 만들어 놨는데,

이렇게 사용하고 있습니다.

http://localhost/study/main/address/a

에서 address는 테이블명으로 사용하고 있고, a는 해당 테이블 내부에 a/b로 나뉜 값을 검색 조건으로 넣었습니다.

그래서 위 주소가 모두 표시되어야 하며, 사용자가 아래 허용된 주소 외 다른 주소, 예를들면

 

http://localhost/study/main/address      // 이렇게 맨 뒤를 빼고 입력 한다던가,

http://localhost/study/main/comment/a     // 이렇게 다른 주소를 넣었을 때, 

 

오류를 뿜지 말고 지정된 주소로 돌아가게 하려고 합니다.

어떤 부분을 만져야 할까요?

 

 다음글 Model 단에서 INSERT, UPDATE, DELE... (2)
 이전글 CI URL 호출에 관련하여 ㅠㅠ.. (3)

댓글

한대승(불의회상) / 2017/08/31 14:26:32 / 추천 0
해당 컨트롤러에서 세그머트 관련된 로직을 만져야 겠죠.
미나리나물 / 2017/08/31 15:46:26 / 추천 0
지정된 주소 외 다른 주소로 접근 하는것을 막으려는건 어떤 부분을 추가해야 할까요?
한대승(불의회상) / 2017/08/31 16:03:04 / 추천 0

지정된 주소와 다른 주소를 어떻게 구분하나요?

미나리나물 / 2017/08/31 16:50:30 / 추천 0

study/main/address/a 에서

segment[1] = main

segment[2] = address 또는 mail

segment[3] = a 또는 b

이게 허용가능한 주소인데, 이거 제외 나머지 주소를 넣으면 강제로 redirect 하려고 합니다.

한대승(불의회상) / 2017/08/31 17:07:28 / 추천 0
@미나리나물 다 만드셨네요. 컨트롤러에서 if문으로 처리해 주세요.
미나리나물 / 2017/08/31 17:10:30 / 추천 0

컨트롤러에 어떤 부분에 넣으면 되나요?

index 부분에 넣으면 될까요?

한대승(불의회상) / 2017/08/31 17:14:41 / 추천 0
메뉴얼에서 _remap 확인해 보세요.
미나리나물 / 2017/08/31 18:19:32 / 추천 0

감사합니다! 덕분에 일단 segment[2] 까지는 해결 했습니다.

if (method_exists($this, $method)) {
      $this -> {"{$method}"}();
    } else {
      redirect('/main/address/a','refresh');
    }

 

그런데 여기서 마지막 segment[3] 도 _remap 에서 변수 처리 될까ᄋᄋ요?

미나리나물 / 2017/09/01 01:24:06 / 추천 0

segment[3] 부분은 수행되는 함수의 첫번째 부분에 아래 구문을 붙여 해결 했습니다.

$seg3 = $this -> uri -> segment(3);
    if ( !($seg3 == 'a' or $seg3 == 'b') ) {
      redirect('/main/address/a','refresh');
    }

 

혹시 더 좋은 방법이 있을까요?