CI 묻고 답하기

제목 form_validation 에러 메세지 문제 정말 해결하고 싶습니다;
글쓴이 정수리 작성시각 2016/06/14 17:12:22
댓글 : 3 추천 : 0 스크랩 : 0 조회수 : 14905   RSS

1%라도 해본 질문 vs. 1%도 안해본 질문, 여러분은 어떤 질문에 손이 가십니까?

몇일 동안 이것때문에 계속 고생이네요;;

몇일동안 포럼에 올려도 답을 못찾고 있습니다;

메뉴얼 보면서 만들었는데도 문제가 발생하네요;;

제가 잘못 만든 것인지;; 정말 궁금하면서 해결하고 싶습니다 ㅜ.ㅜ

도와주세요 ㅜ.ㅜ

뷰페이지는 이렇게 만들었습니다.

<div id="main">
			 	<?php echo validation_errors();?>
			 <h1>재능등록</h1>
				<form action="/item/upload" method="get" enctype="multipart/form_data">
					<div name="item">
					카테고리 설정
					<div name="category">
					<select name="cg">
						<option value="">선택하세요</option>
						<option value="1">디자인</option>
						<option value="2">번역작성</option>
						<option value="3">컴퓨터</option>
						<option value="4">핸드메이드</option>
						<option value="5">엔터테인먼트</option>
					</select>
					 
					<select name="cg2">
						<option value="">선택하세요</option>
					</select>
					</div>
					가격
					<div name="price">
					<input type="text" name="price" size="32" placeholder="1,000원 단위로 입력해주세요" style="text-align:right;" />원
					</div>
					 제목
					 <div name="title">
					 <input type="text" size="32" name="title" placeholder="제목을 입력해주세요" />
					 </div>
					이미지
					<div>
					<input type="file" name="user_upload" />
					</div>
					내용
					<div>
					<textarea name="content" style="width:100%; board:1; overflow:visible;text-overflow:ellipsis;" rows="20"></textarea>
					</div>
					<div>
					<input type="submit" value="등록" />
					</div>
				</div>
				</form>
			</div>	

이것을 검증하는 컨트롤러는

function upload(){
	$this->load->helper('form');
	$this->load->library('form_validation');
	$this->form_validation->set_rules('cg', '메인카테고리', 'required');
	$this->form_validation->set_rules('cg2', '서브카테고리', 'required');
	$this->form_validation->set_rules('price', '가격', 'required|numeric');
	$this->form_validation->set_rules('title', '제목', 'required');
	$this->form_validation->set_rules('user_upload', '이미지', 'required');
	
		if($this->form_validation->run() == FALSE){
			$this->load->view('session');
			$this->load->view('head2');
			$this->load->view('/buy/register');
			$this->load->view('footer2');
		}else{
			$config['upload_path']='./static/user';
			$config['allowed_types']='gif|jpg|png';
			$config['max_size']=1000;
			$config['max_width']=1024;
			$config['max_height']=768;
			
			$this->load->library('upload', $config);
			if(!$this->upload->do_upload()){
				$error['error']=$this->upload->display_errors();
				echo $error['error'];
				//$this->load->view('register', $error);
			}else{
				$upload_data=$this->upload->data();
				$upload_data['cg_pk']=$this->input->get('cg', true);
				$upload_data['cg2_pk']=$this->input->get('cg2', true);
				$upload_data['item_pr']=$this->input->get('price', true);
				$upload_data['item_title']=$this->input->get('title', true);
				$upload_data['item_im']=$upload_data['orig_name'];
				$upload_data['item_ct']=$this->input->get('content', true);
				var_dump($upload_data);
			}
		}
	}

이렇게 만들었구요 그래서 실행하였더니 if문의 form_validation->run()이 false가 나와 register페이지로 돌아가는데 에러메세지 출력이 안됩니다.

그리고 경로가 '/auth/seller' 되어있는 버튼 클릭시 

Call to undefined function validation_errors()

Filename: C:\web\Apache24\htdocs\application\views\buy\register.php

Line Number: 2

위의 뷰페이지의

<?php echo validation_errors();?>

이부분에서 위처럼 에러메시지가 발생합니다;

이런한 문제가 form_validation을 사용한 페이지에서 똑같은 문제 발생하네요;;

function seller(){//재능등록페이지 이동
		$this->load->model('Member');
		$result=$this->Member->Select(array('id'=>$this->session->userdata('id')));	
		$sell=$result->ur_sell;
		if($sell==0){
			$this->load->view('session');
			$this->load->view('head2');
			$this->load->view('/member/seller');
			$this->load->view('footer2');
		}else{
			$this->load->view('session');
			$this->load->view('head2');
			$this->load->view('/buy/register');
			$this->load->view('footer2');
		}
	}

위는 /auth/seller 클릭시 이동되는 컨트롤러 코드 입니다.

정말 해결하고 싶고 이유도 알고 싶습니다 ㅜ.ㅜ

 다음글 윈도우 환경에서 썸네일 만드는 방법이 어떻게 되나요?? (7)
 이전글 routes.php 설정 문의입니다. (1)

댓글

한대승(불의회상) / 2016/06/14 17:24:53 / 추천 0

메뉴얼대로 했다면 정상 동작 하는게 맞습니다.

위 에러는 validation_errors() 함수가 로드 되지 않았기 때문에 발생한 에러 입니다.

메뉴얼을 다시 한번 천천히 비교하면서 살펴 보는게 좋을것 같습니다. 

정수리 / 2016/06/14 17:52:42 / 추천 0

@한대승

답변감사합니다.

메뉴얼도 다시 보고 만들면서 배우는Ci 책도 확인하고 생활코딩이라는 동영상강좌에서 form_validation부분을 확인하였습니다

세가지모두 validation_errors()함수를 따로 load하는 부분에 대한 설명은 없네요;

validation 함수를 따로 로드하는 방법이 있나요?

정수리 / 2016/06/14 18:18:07 / 추천 0

@한대승

해결하였습니다 ㅜ.ㅜ

코드를 대폭 수정하니 되는군요 ㅜㅜ