CI 묻고 답하기

제목 Form Validation(폼 검증)에서 오류가 전혀 안뜹니다.
글쓴이 에카 작성시각 2013/11/02 00:42:04
댓글 : 6 추천 : 0 스크랩 : 0 조회수 : 16628   RSS
view(register.php)
   <form class="form-horizontal" action="" method="POST" role="form">
    <input type="hidden" name="<?php echo $this->security->get_csrf_token_name(); ?>" value="<?php echo $this->security->get_csrf_hash();?>" />
    <h2>회원가입</h2>
    <?php echo validation_errors(); ?>
    <div class="form-group">
     <label for="IDtext" class="col-lg-2 control-label">ID</label>
     <div class="col-lg-10">
      <input type="text" class="form-control" name="identifyname" value="<?php echo set_value('identifyname'); ?>" id="IDtext" size="24" minlength="6" maxlength="24" placeholder="아이디 (6자부터 24자까지, 영문, -, _ 포함)" required="required" />
     </div>
     <span class="okay">사용하셔도 좋습니다.</span>
     <span class="ng">이미 사용중이거나, 사용이 제한된 아이디입니다.</span>
    </div>
    <div class="form-group">
     <label for="Password" class="col-lg-2 control-label">비밀번호</label>
     <div class="col-lg-10">
      <input type="password" class="form-control" name="password" value="<?php echo set_value('password'); ?>" id="Password" size="24" minlength="8" maxlength="24" placeholder="비밀번호 (대소문자 구분없이 8자부터 24자까지)" required="required" />
     </div>
     <span class="okay">사용하셔도 좋습니다.</span>
     <span class="ng">비밀번호는 8자부터 24자까지 입력해주시기 바랍니다.</span>
    </div>
    <div class="form-group">
     <label for="PasswordRe" class="col-lg-2 control-label">비밀번호 다시 입력</label>
     <div class="col-lg-10">
      <input type="password" class="form-control" name="password_re" value="<?php echo set_value('password_re'); ?>" id="PasswordRe" size="24" minlength="8" maxlength="24" placeholder="비밀번호 재입력" required="required" />
     </div>
     <span class="okay">비밀번호가 일치합니다.</span>
     <span class="ng">비밀번호가 이전에 입력한 값과 일치하지 않습니다.</span>
    </div>
    <div class="form-group">
     <label for="Nickname" class="col-lg-2 control-label">닉네임</label>
     <div class="col-lg-10">
      <input type="text" class="form-control" name="nickname" value="<?php echo set_value('nickname'); ?>" id="Nickname" size="16" minlength="2" maxlength="16" placeholder="닉네임 (<, >,등 특수문자를 제외한 최소2글자부터 최대 16글자)" required="required" />
     </div>
     <span class="okay">사용하셔도 좋습니다.</span>
     <span class="ng">이미 사용중이거나 사용이 제한된 닉네임입니다.</span>
    </div>
   </form>
controller(member.php, member에 register입니다.)
  $this->load->library('form_validation');
  if($this->input->post()){ // 회원가입 받았을경우
   if ($this->form_validation->run() == FALSE)
   {
    $this->load->view('register.php');
   } else {
    $this->load->view('register_complete.php');
   }
  } else {
   $this->load->view('register.php', $_MODEL);
  }
config(form_validation.php)
<?php

$config = Array(
 'member/register' => Array(
  array(
   'field' => 'identifyname',
   'label' => 'ID',
   'rules' => 'required|min_length[6]|max_length[24]|trim|strtolower|xss_clean|alpha_dash'
  ),
  array(
   'field' => 'password',
   'label' => '비밀번호',
   'rules' => 'required|min_length[8]|max_length[24]|trim|xss_clean'
  ),
  array(
   'field' => 'password_re',
   'label' => '비밀번호 확인',
   'rules' => 'required|min_length[8]|max_length[24]|trim|xss_clean'
  ),
  array(
   'field' => 'nickname',
   'label' => '닉네임',
   'rules' => 'required|min_length[2]|max_length[16]|trim|xss_clean|htmlentities'
  )
 )
);
이런식으로 코드를 짰습니다.
POST전송시에 FALSE를 뿜어내길래 무언가 문제가 있는듯 싶어서 확인해보았습니다.

근데 오류가 전혀 안뜹니다.
오류가 뜨면 왜 오류가 떠야되는지 나와야되는데, 오류자체가 뜨질않습니다.
혹시 rules가 문제일까 싶어서 rules를 다시 체크해봤는데도 아닙니다.

도대체 왜일까요.. 뭐가 문젤까요. 이해가 안가네요.
config이 문제인듯 싶어서 config에 label을 field와 일치시켜보기도 했습니다.
 다음글 모델 파일을 추가 했는데요. (3)
 이전글 호스팅 사이트에서 sqlserver에 접속하고 싶습니다... (3)

댓글

변종원(웅파) / 2013/11/03 00:33:16 / 추천 0
소스를 덜 옮기신건지 뷰에서 데이터를 전송하는 부분이 없습니다.
에카 / 2013/11/03 00:56:26 / 추천 0
 웅파님 // 아 제가 소스를 덜옮겼습니다 ^^;
원래 <input type="submit" value="가입하기" /> 가 있습니다.
가입하기 버튼이 소스에서 빠진다고 해도 검사가 안될 이유가 없다고 생각하고있거든요..
$this->input->post()  로 보면 해당 내용들은 다 들어오는 상태구요.
변종원(웅파) / 2013/11/03 08:17:12 / 추천 0
if post체크는 중복이라 일단 빼고 실행해보세요. run함수만으로 충분합니다
에카 / 2013/11/03 14:36:11 / 추천 0
 웅파님 // 빼봤는데 여전하네요... 무엇이 문제일까요?
letsgolee / 2013/11/04 12:18:24 / 추천 0
 form_error를 써보세요. validation_errors()에서는 아무런 메시지 없는 것도 form_error에서는 나오더라구요.
에카 / 2013/11/09 20:36:50 / 추천 0
많은분들이 도움주셨는데 결국 해답은 하나도 못찾았습니다.. 수동으로 form_validation을 만들기로 했습니다 ㅠㅠㅠㅠㅠ