만들면서 배우는 CodeIgniter Q&A

제목 [p.126] 게시물 쓰기 관련 php error 질문
글쓴이 bien 작성시각 2014/10/08 01:04:24
댓글 : 2 추천 : 0 스크랩 : 0 조회수 : 11990   RSS
안녕하세요. 하루종일 헤딩만 하다가 결국 초급 질문 드립니다. 

게시물 쓰고나면 작성은 되는데, 동시에 아래와 같은 Undefined offset: 4 에러문이 발생합니다.



해당 line을 살펴보니 board.php 내
 
function url_explode($url, $key)
		{
			$cnt = count($url);
			for($i=0; $cnt>$i; $i++ )
			{
				if($url[$i] ==$key)
				{
					$k = $i+1;
					return $url[$k];
				}
			}
		}


에서 return 부분입니다.  

board.php 파일 내 write() 에서 사용하는 url_explode($url, $key) 가 포함된 부분이
$pages = urldecode($this->url_explode($uri_array , 'page' ));
//인데 이부분은 잘 이해가 가지 않네요. 제가 이해한 부분은 이렇습니다. 


$uri_array = ['bbs'=0, 'board'=1, 'lists'=2, 'ci_board'=3, 'page'=4]
url_explode($uri_array , 'page' )
-. 세그먼트 배열인 $uri_array 와 key인 'page' 를 사용. 
-. $cnt 변수에 $uri_array 배열 갯수 입력
-. for반복으로 page값의 위치 찾고 리턴
-. page는 4이므로 리턴 값은 $url[5]

여기까지 입니다. 여기서 궁금한게 여럿 생기면서 복잡해집니다. ㅠㅠ


Q1. 리턴 값이 $url[5] 가 되고 페이지번호(다음 세그먼트)가 리턴인데 제가 이해한 게 맞는건지.

Q2. 에러 후에 자동으로 주소창이 아래 그림처럼 되면서 게시물 쓰기 페이지가 로딩됩니다. 



이 상황은 board.php내 게시물 쓰기 함수 부분이 잘못된 게 아니라 
경고 후에 주소가 rewrite 되는 부분에서 잘못된 것 같은데

alert 헬퍼 외에 다른 부분을 봐야 하는건지?

Q3. 그리고 urldecode는 검색해보니 '한글의 주소화'로 받아들였는데 맞는건지.
    (맞다면 urldecode는 page 및 page번호이기 때문에 위 문제와 상관 없지 않나요??)



이렇게 기본도 없이 죄송합니다. 헌데 물어볼 곳이 없어 시간이 너무 오래 걸리네요... ㅠㅠ
(검색 하면서 영어공부가 더 되는것 같아요 ^^)


ps. 이제야 VMC 구조를 아주 조금 이해 한 것 같습니다. 감사합니다. (__)


 다음글 CI_Model에 대해서51~54p (3)
 이전글 데이터베이스 오류가 발생하였습니다. (4)

댓글

bien / 2014/10/08 01:12:58 / 추천 0
코드를 넣다보니 에디터에서 꼬였네요 ㅠㅠ ;;; 보시기 불편하게 올려서 죄송합니다. 
변종원(웅파) / 2014/10/08 17:36:43 / 추천 0
답변이 좀 늦었습니다.

해당 경고는 /page/ 뒤에 값이 없기 때문에 그렇습니다. 컨트롤러에 page 변수 내용이 없을 경우 1로 셋팅하고 있습니다.
글쓰기할때도 해당페이지 주소를 넘겨주셔야 합니다. 

http://cikorea.net/cibook/view/5/page/1/  여기 오탈자도 한번 봐주시구요.