제목 | 폼 검증시 널값이 아닐때에만 폼 검증을 할 수 있는 방법이 없을까요? | ||
---|---|---|---|
글쓴이 | 진공발차기 | 작성시각 | 2015/01/07 11:50:50 |
|
|||
$config = array( array('field'=>'mb_name', 'label'=>'사원명', 'rules'=>'trim|required|min_length[3]|max_length[20]|xss_clean'), array('field'=>'mb_birth', 'label'=>'생년월일', 'rules'=>'trim|required|alpha_dash|xss_clean'), array('field'=>'mb_id', 'label'=>'아이디', 'rules'=>'trim|required|alpha_dash|xss_clean|callback_mb_id_check'), array('field'=>'mb_password', 'label'=>'비밀번호', 'rules'=>'trim|required|max_length[20]'), array('field'=>'mb_password_re', 'label'=>'비밀번호 확인', 'rules'=>'trim|required|max_length[20]|matches[mb_password]'), array('field'=>'mb_hp[0]', 'label'=>'전화번호 첫번째', 'rules'=>'exact_length[3]|numeric'), array('field'=>'mb_hp[1]', 'label'=>'전화번호 두번째', 'rules'=>'numeric'), array('field'=>'mb_hp[2]', 'label'=>'전화번호 세번째', 'rules'=>'exact_length[4]|numeric') ); $this->form_validation->set_rules($config);위와 같이 해서 폼 검증을 하는데요 저 같은 경우에는 휴대폰 번호는 필수로 받고 싶지 않아서 required를 빼고 쓰려고 하는데 뒤에 조건들 때문에 null 값을 경우에도 문제가 생깁니다. null 값이 아닐때에만 사용할 수 있는 방법은 없는 건가요? |
|||
다음글 | 컨트롤러에서 생성자는 사용가능한데요. 소멸자는 사용 못... (2) | ||
이전글 | url 경로 변경방법 궁금합니다 (1) | ||
한대승(불의회상)
/
2015/01/07 12:15:48 /
추천
0
아래 처럼 하시면 되겠네요.
|
진공발차기
/
2015/01/07 12:39:50 /
추천
0
감사합니다.
방법은 위에 주신 것처럼 먼처 체크하는 방법 밖에는 없나 보네요. ^^ |
한대승(불의회상)
/
2015/01/07 13:27:43 /
추천
0
진공발차기// 다른 방법도 있겠지만 가장 직관적이고 유지보수가 쉽습니다. ^^
|
진공발차기
/
2015/01/07 13:39:48 /
추천
0
네 감사합니다.
그런데 테스트를 하다 보니까요 $this->input->post('mb_hp[0]') 값이 안나오네요. print_r($_POST["mb_hp"]); Array ( [0] => 010 [1] => 1234 [2] => 5678 ) /* 결과 값이 정상적으로 들어옮 */ $this->input->post('mb_hp[0]'); /* 결과 값이 없음 */ $this->input->post('mb_hp'); /* 결과 값이 Array 가 나오기 때문에 값은 있는 것 같은데요 print_r 도 되지가 않네요 */ $this->input->post("mb_name"); /* 배열이 아닌 것들은 결과 값이 받아짐 */ $this->input->post('mb_hp') 으로 했을 때에는 array 가 나와요. |
진공발차기
/
2015/01/07 13:55:14 /
추천
0
참고로 값을 보내보니까
mb_hp[]=010&mb_hp[]=1234&mb_hp[]=5678 이렇게 가고 있네요. |
한대승(불의회상)
/
2015/01/07 14:26:02 /
추천
0
네.. 생각지 못했던 거네요.
아래 처럼 해보세요. $mb_hp = $this->input->post('mb_hp); if($mb_hp[0] &&$mbhp[1]&&$mbhp[2]) { . . } |
진공발차기
/
2015/01/07 14:28:14 /
추천
0
되네요 ^^ 진짜 이것 저것 해보면 답은 나오는데 이게 아직까지 응용하는 방법에 있어서 생각을 잘 못하네요 ㅜㅜ
|
진공발차기
/
2015/01/08 16:52:33 /
추천
0
문제점은 어제 해결을 했는데요 이거를 하다 보니까 좀 불편함이 생겨서.
$mb_hp = $this->input->post('mb_hp); 이쪽을 권장하는 core쪽을 건드려 보려고 했습니다. function post($index = NULL, $xss_clean = FALSE) { // Check if a field has been provided if ($index === NULL AND ! empty($_POST)) { $post = array(); // Loop through the full _POST array and return it foreach (array_keys($_POST) as $key) { $post[$key] = $this->_fetch_from_array($_POST, $key, $xss_clean); } return $post; } return $this->_fetch_from_array($_POST, $index, $xss_clean); } 위와 같이 써져 있는 부분의 소스를 아래와 같이 고쳐보기로 했습니다. function post($index = NULL, $xss_clean = FALSE, $CHK = '') { // Check if a field has been provided if ($index === NULL AND ! empty($_POST)) { $post = array(); if($CHK == '') { // Loop through the full _POST array and return it foreach (array_keys($_POST) as $key) { $post[$key] = $this->_fetch_from_array($_POST, $key, $xss_clean); } } else { foreach (array_keys($CHK) as $key) { $post[$key] = $this->_fetch_from_array($CHK, $key, $xss_clean); } } return $post; } return $this->_fetch_from_array($_POST, $index, $xss_clean); } 그리고 불러오기를 아래와 같이 불러왔는데 $this->input->post('mb_mail[0]', TRUE,'mb_mail'); 위에 소스중 $index === NULL 때문에 안되는데 이거 해결 방법이 없을까요? |
한대승(불의회상)
/
2015/01/09 11:32:47 /
추천
0
문제가 무엇인지 알고 계시니 해결 방법은 고민하면 해결 될 것 같습니다.
프레임워크 코어는 수정은 될수 있으면 하지 않는게 좋습니다. 프레임워크 업데이트나 문제 발생시 어느부분에서 발생했는지 추적을 하지 못하는 경우가 발생 할 수 있습니다. |