제목 | form_valiation 에레메세지와 javascript의 alert 메세지 어떤걸 사용하시나요? | ||
---|---|---|---|
글쓴이 | 정수리 | 작성시각 | 2016/06/14 13:20:06 |
|
|||
1%라도 해본 질문 vs. 1%도 안해본 질문, 여러분은 어떤 질문에 손이 가십니까?
예전 검증하는거에 대해 질문을 올려서 많은 선배님들께서 javascript를 통한 유효성 검증와 form_validation을 통한 검증 1,2차 검증을 모두 사용하라고 하셔서 view에서 javascript를 통한 유효성 검사와 controller에서는 form_validation을 통해 검사를 모두 사용하였으며 정상적으로 나타나는지도 확인하였습니다. 이것을 사용하면서 궁금증이 생긴것이 javascript에서 잘못입력하였을 경우 alert메세지를 통해 잘못입력되었다는 메세지를 출력을하고 form_validation에서도 규칙과 다르면 에러메세지를 출력합니다 그렇기에 둘중 어느 메세지를 사용하시는지 알고 싶습니다. javascript 유효성 검증과 form_validation을 통한 검증 모두 사용할 경우 form_validation 검증에서 나오는 에러메세지는 거이 출력되지 않기는 합니다. 먼저 javascript alter메세지가 출력이 되기때문에 그렇다면 굳이 form_validation의 출력메세지를 출력하는 코드를 입력할 필요가 있을까요?
두번째 질문으로는 form_validation을 사용하여 에러메세지가 출력되지않는다고 여러번 게시글을 올렸는데 그때는 제가 너무 두서가 없이 올린것 같아 다시 정리하여 질문을 올리게되었습니다. 에러메세지가 출려되는 페이지의 경우 controller에서 if($this->form_validation->run()== FALSE){ $this->load->view('head'); $this->load->view('member/Join'); $this->load->view('footer'); } 이렇게 load-view를 통해 해당페이지를 로드시키면 form_validation의 에러메시지 출력코드가 작성되어 페이지의 경우 에러메시지가 잘출려됩니다. 하지만 if($this->form_validation->run()==FALSE){ $this->load->helper('url'); redirect('/auth/mypage'); } 페이지를 로드시키지 않고 url헬퍼를 통해 리다이렉션 시킬 경우 에러메시지가 출력이 되지않습니다(출력은 안되나 검증이 됩니다) 그래서 /auth/mypage에서 form_validation을 로드시키고 규칙을 설정하였지만 리다이렉트를 통해 페이지로가면 에러메시지가 출력되지않고 리다이렉트가 아닌 다른경로 접속하였을 경우 에러가 발생합니다; 이럴땐 어떻게 해야되나요? 긴글읽어주셔서 감사합니다 ㅜ.ㅜ |
|||
다음글 | routes.php 설정 문의입니다. (1) | ||
이전글 | 하위 폴더에 CI 설치 (1) | ||
뫄뫄잉뿌
/
2016/06/14 13:37:22 /
추천
0
저는 form_validation을 통해 검증 후 입력되지 않으면 화면단에서 echo form_error를 통해 입력하라는 메시지 띄웁니다!
|
kaido
/
2016/06/14 13:38:51 /
추천
0
... 당연한 현상이 아닌가 싶습니다 redirect 를 거는 순간 폼 검증 페이지에서 나와서 다른 페이지로 가버리니 에러메세지가 나오지 않습니다. 또한 javascript 의 검증과 ci 에서의 검증은 서로 다릅니다. ci 에서 검증을 한다고 javascript 에서 연동이 되어 검증이 되거나 하지 않습니다.
javascript 검증의 역할과 php 검증의 역할은 서로 다릅니다.
javscript 검증은 폼 검증 순수한 능력 보다는, 입력 값에 대한 기본적인 ux를 직관적으로 나타내기 위한 1차 필터라고 보셔야합니다. ci 의 검증은 의미 그대로 정말로 제대로 된 값을 보냈는지에 대한 검증을 합니다.
굳이 작업을 한다면 2가지 전부 나타나는것이 맞습니다. javascript 는 어디까지나 유저에게 직관적인 표현이며, 얼마든지 위변조가 가능하기에 신뢰가 가는 검증 데이터는 아닙니다. |
정수리
/
2016/06/14 13:49:06 /
추천
0
@kaido 아 그렇군요;; 그렇다면 redirect가 아닌 뷰페이지를 로드해서 해야될까요? if ( $this ->form_validation->run()==FALSE){ $this ->load->helper( 'url' ); redirect( '/auth/mypage' ); 이부분을 $this ->load->view( 'head' );
$this ->load->view( 'member/mypage' ); $this ->load->view( 'footer' ); 이렇게 변경 후 mypage.php에서 <?php echo form_error('id');?> 작성을 해준후 실행하면 <?php echo form_error('id);?>에서 에러가 발생합니다, Call to undefined function form_error() 이에러가 발생합니다; 계속 해결이 되지않아 메뉴얼도 읽어보고 ci책도 읽어보았습니다;
|
뫄뫄잉뿌
/
2016/06/14 13:59:42 /
추천
0
굳이 load->view로 안보내도 폼검증 후 해당 화면에서 에러메시지 띄워줍니다
|
정수리
/
2016/06/14 14:03:02 /
추천
0
@뫄뫄잉뿌 해당뷰페이지에 <?php echo form_error('id);?>이 코드가 작성되어 있어야 에러가 출려되는거 아닌가요? http://www.ciboard.co.kr/user_guide/kr/libraries/form_validation.html 메뉴얼에는 뷰페이지 에서 <?php echo validation_errors(); ?> 에러 출력 코드가 작성되어있어서;; |
뫄뫄잉뿌
/
2016/06/14 14:16:54 /
추천
0
둘다 되는걸로 알고 있습니다 echo form_error('검증할 field','<font color=red>','</font>'); echo validation_errors('<span class="error">', '</span>'); form_error와 validation_errors 는 비슷한 역할을 합니다. |
정수리
/
2016/06/14 14:23:37 /
추천
0
@뫄뫄잉뿌 답변감사합니다. 말씀하신 코드 모두 사용가는한데 위치는 뷰페이지에 위치 해야되는거아닌가요? 메뉴얼에서 두개의 함수를 찾아보았는데 정확히 위치는 어디라고 명시는 안되어있고 예제는 모두 뷰 페이지에서 작성이 되어있길래; 제대로 에러메시지를 출력하는 페이지와 똑같이 코딩을 하였는데 한페이지는 에러메시지가 출력이 되지않고;; 제가 어떤걸 놓치는듯한 기분인데;; 도저히 어떤건지 감이 안잡히네요;; 뷰페이지에서 echo form_error('필드이름')을 하였을 경우 계속 Call to undefined function form_error() 이 에러가 발생하는데 왜 발생하는지 알수 있을까요??; 정상적으로 실행되는 페이지는 저런 애가 발생하지 않는데 ㅜ.ㅜ |
뫄뫄잉뿌
/
2016/06/14 15:13:26 /
추천
0
뷰 페이지에서 작성되어야 하는거 맞습니다. 헬퍼나 라이브러리 로드 한건 맞죠..?
|
정수리
/
2016/06/14 15:56:39 /
추천
0
@뫄뫄잉뿌 네 ㅜ.ㅜ $this->load->library('form_validation'); $this->form_validation->set_rules('email', '이메일', 'trim|valid_email'); $this->form_validation->set_rules('phone', '연락처', 'trim'); $this->form_validation->set_rules('zipcode', '우편번호','trim'); $this->form_validation->set_rules('add1', '주소', 'trim'); $this->form_validation->set_rules('add2', '상세주소','trim|required'); if($this->form_validation->run()==FALSE){ $this->load->view('session'); $this->load->view('head2'); $this->load->view('/member/mypage'); $this->load->view('footer2'); 컨트롤러가 코드가 위처럼 되있구요 ㅜㅜ. 뷰페이지는 <form id="modify" action="/auth/modify" method="post"> 아이디 <input type="text" name="id" size="17" value="<?=$profile->ur_id?> " readonly/></br> 이 름 <input type="text" name="name" size="5" value="<?=$profile->ur_na?>" readonly/> </br> 이 메일 <input type="email" name="email" id="email" size="20" value="<?=$profile->ur_em?>"/><?php echo form_error('email');?></br> 주 소 <input type="text" name="zipcode" id="zipcode" size="10" value="<?=$profile->ur_zip?>"> <input type="button" onclick="sample6_execDaumPostcode()" value="우편번호 찾기"><br> <input type="text" name="add1" id="add1" size="60" value="<?=$profile->ur_ad1?>" /> <input type="text" name="add2" id="add2" value="<?=$profile->ur_ad2?>" /><br> 연락처 <input type="text" name="phone" id="phone" size="13" value="<?=$profile->ur_ph?>"/><br> 이렇게 코딩되었습니다 ㅜ.ㅜ <?php echo form_error('email');?> 에러가 발생하네요 ㅜㅜ, 정말 해결하고싶습니다..
|
한대승(불의회상)
/
2016/06/14 16:05:09 /
추천
0
자바스크립트에서 검증이 되지않고 잘못된 데이터가 들어 오는 경우는 거의가 크래킹 인 경우가 아닐까요? ^^ 저의 경우 서버에서 보내는 메시지는 간단히 echo로 처리 합니다. |
정수리
/
2016/06/14 16:09:38 /
추천
0
@한대승 답변감사합니다 제가 아직 많이 부족해서 그런지 echo로 처리하신다는 어떤방법으로 하시는건가요? 제가 아는 form_validation 에러 메세지 출력은 뷰페이지에서 validation_errors() 하고 form_errors()밖에 없어서; |
뫄뫄잉뿌
/
2016/06/14 16:17:39 /
추천
0
혹시 모르니 $this->load->helper('form'); 도 controller단에 넣어보시겠어요..?
|