[CodeIgniter] 폼 검증하기[CodeIgniter] 폼 검증하기
Posted at 2019. 12. 17. 18:36 | Posted in PHP/CodeIgniter■ 형식 검토
http://www.ciboard.co.kr/user_guide/kr/libraries/form_validation.html
규칙 |
파라미터 |
설명 |
required |
NO |
· 검사 대상이 비어있으면 FALSE를 리턴한다. |
matches |
YES |
· 검사 대상이 파라미터의 값과 일치하지 않을 때 FALSE를 리턴한다. |
is_unique |
YES |
· 파라미터에서 테이블 및 필드 이름이 유일하지 않다면 FALSE를 리턴한다. |
alpha |
NO |
· 검사 대상이 알파벳 이외의 문자를 포함할 때 FALSE를 리턴한다. |
alpha_numeric |
NO |
· 검사 대상이 알파벳이나 숫자가 아닌 문자를 포함할 때 FALSE를 리턴한다. |
alpha_dash |
NO |
· 검사 대상이 알파벳, 숫자, 밑줄(...), 대시(...) 이외의 문자를 포함할 때 FALSE를 리턴한다. |
numeric |
NO |
· 검사 대상이 숫자 이외의 문자를 포함할 때 FALSE를 리턴한다. |
integer | NO | · 검사 대상이 정수 이외의 문자를 포함할 때 FALSE를 리턴한다. |
decimal | YES | · 검사 대상이 소수 이외의 문자를 포함할 때 FALSE를 리턴한다. |
is_natural | NO | · 검사 대상이 자연수 이외의 문자를 포함할 때 FALSE를 리턴한다. ( 0, 1, 2, 3, ... 등인지 검사 ) |
is_natural_no_zero | NO | · 검사 대상이 1 이상의 자연수 이외의 문자를 포함할 때 FALSE를 리턴한다. ( 1, 2, 3 ... 등인지 검사 ) |
valid_email | NO | · 검사 대상이 유효한 이메일 주소가 아닐 때 FALSE를 리턴한다. |
valid_emails | NO | · 검사 대상이 콤마( , )로 구분된 이메일 주소일 경우에 사용 · 유효한 이메일 주소가 아닐 때 FALSE를 리턴한다. ( 여러개의 이메일을 한꺼번에 검사 ) |
valid_ip | NO | · 검사 대상이 유효한 IP 주소가 아닐 때 FALSE를 리턴한다. · IP포맷을 검증하기 위해 "ipv4" 또는 "ipv6"를 구별하는 파라미터를 받을 수 있다. |
codeIgniter/system/language/english/form_validation_lang.php |
defined('BASEPATH') OR exit('No direct script access allowed'); $lang['form_validation_required'] = "The {field} field is required."; $lang['form_validation_isset'] = "The {field} field must have a value."; $lang['form_validation_valid_email'] = "The {field} field must contain a valid email address."; $lang['form_validation_valid_emails'] = "The {field} field must contain all valid email addresses."; $lang['form_validation_valid_url'] = "The {field} field must contain a valid URL."; $lang['form_validation_valid_ip'] = "The {field} field must contain a valid IP."; $lang['form_validation_valid_base64'] = "The {field} field must contain a valid Base64 string."; $lang['form_validation_min_length'] = "The {field} field must be at least {param} characters in length."; $lang['form_validation_max_length'] = "The {field} field cannot exceed {param} characters in length."; $lang['form_validation_exact_length'] = "The {field} field must be exactly {param} characters in length."; $lang['form_validation_alpha'] = "The {field} field may only contain alphabetical characters."; $lang['form_validation_alpha_numeric'] = "The {field} field may only contain alpha-numeric characters."; $lang['form_validation_alpha_numeric_spaces'] = "The {field} field may only contain alpha-numeric characters and spaces."; $lang['form_validation_alpha_dash'] = "The {field} field may only contain alpha-numeric characters, underscores, and dashes."; $lang['form_validation_numeric'] = "The {field} field must contain only numbers."; $lang['form_validation_is_numeric'] = "The {field} field must contain only numeric characters."; $lang['form_validation_integer'] = "The {field} field must contain an integer."; $lang['form_validation_regex_match'] = "The {field} field is not in the correct format."; $lang['form_validation_matches'] = "The {field} field does not match the {param} field."; $lang['form_validation_differs'] = "The {field} field must differ from the {param} field."; $lang['form_validation_is_unique'] = "The {field} field must contain a unique value."; $lang['form_validation_is_natural'] = "The {field} field must only contain digits."; $lang['form_validation_is_natural_no_zero'] = "The {field} field must only contain digits and must be greater than zero."; $lang['form_validation_decimal'] = "The {field} field must contain a decimal number."; $lang['form_validation_less_than'] = "The {field} field must contain a number less than {param}."; $lang['form_validation_less_than_equal_to'] = "The {field} field must contain a number less than or equal to {param}."; $lang['form_validation_greater_than'] = "The {field} field must contain a number greater than {param}."; $lang['form_validation_greater_than_equal_to'] = "The {field} field must contain a number greater than or equal to {param}."; $lang['form_validation_error_message_not_set'] = "Unable to access an error message corresponding to your field name {field}."; $lang['form_validation_in_list'] = "The {field} field must be one of: {param}."; |
■ 입력 길이
규칙 |
파라미터 |
설명 |
min_length |
YES |
· 검사 대상의 길이가 파라미터 값보다 작을 때 FALSE를 리턴한다. |
max_length |
YES |
· 검사 대상의 길이가 파라미터 값보다 클 때 FALSE를 리턴한다. |
exact_length |
YES |
· 검사 대상의 길이가 파라미터 값과 다를 때 FALSE를 리턴한다. |
greater_than |
YES |
· 검사 대상이 지정된 값보다 작거나 숫자가 아닌경우 FALSE를 리턴한다. |
less_than |
YES |
· 검사 대상이 지정된 값보다 크거나 숫자가 아닌 경우 FALSE를 리턴한다. |
■ 폼 검증 예
<?php // @details 필드의 앞뒤 공백제거 | 필수 필드 | 5자 이상 | 12자 이하 | 필드에서 XSS 공격에 해당하는 내용 제거 $this->form_validation->set_rules( "username", "Username", "trim | required | min_length[5] | max_length[12] | xss_clean" ); // @details 필드의 앞뒤 공백 제거 | 필수 필드 | passconf 필드와 매칭되는지 체크 | MD5로 변환 $this->form_validation->set_rules( "password", "Password", "trim | required | matches[passconf] | md5" ); // @details 필드의 앞뒤 공백 제거 | 필수 필드 | 이메일 형식이 맞는지 체크 $this->form_validation->set_rules( "email", "Email", "trim | required | valid_email" ); ?> |
■ 폼 검증 에러메시지를 한글로 표시하기
codeIgniter/application/config/config.php |
<?php defined('BASEPATH') OR exit('No direct script access allowed'); // ~~ 이 하 생 략 ~~ /* |-------------------------------------------------------------------------- | Default Language |-------------------------------------------------------------------------- | | This determines which set of language files should be used. Make sure | there is an available translation if you intend to use something other | than english. | */ // $config['language'] = "english"; $config['language'] = "korea"; // ~~ 이 하 생 략 ~~ |
codeIgniter/system/language/korean/form_validation_lang.php |
defined('BASEPATH') OR exit('No direct script access allowed'); $lang['form_validation_required'] = "{field} 필드가 필요합니다."; $lang['form_validation_isset'] = "{field} 필드는 반드시 필요한 값입니다."; $lang['form_validation_valid_email'] = "{field} 필드는 유효한 이메일 주소를 반드시 포함해야 합니다."; $lang['form_validation_valid_emails'] = "{field} 필드는 모든 유효한 이메일 주소를 반드시 포함해야 합니다."; $lang['form_validation_valid_url'] = "{field} 필드는 유효한 URL을 포함해야 합니다."; $lang['form_validation_valid_ip'] = "{field} 필드는 유효한 IP를 포함해야 합니다."; $lang['form_validation_valid_base64'] = "{field} field must contain a valid Base64 string."; $lang['form_validation_min_length'] = "{field} 필드의 길이는 최소한 {param} 개의 문자를 넘어야 합니다."; $lang['form_validation_max_length'] = "{field} 필드의 길이는 최대 {param} 개의 문자를 넘어서는 안됩니다."; $lang['form_validation_exact_length'] = "{field} 필드의 길이는 정확히 {param} 개의 문자여야 합니다."; $lang['form_validation_alpha'] = "{field} 필드는 알파벳 문자만 포함할 수 있습니다."; $lang['form_validation_alpha_numeric'] = "{field} 필드는 알파벳 문자와 숫자만 포함할 수 있습니다."; $lang['form_validation_alpha_numeric_spaces'] = "{field} 필드는 알파벳 문자와 숫자, 그리고 공백만 포함할 수 있습니다."; $lang['form_validation_alpha_dash'] = "{field} 필드는 알파벳 문자와 숫자, 밑줄, 대시만 포함할 수 있습니다."; $lang['form_validation_numeric'] = "{field} 필드는 반드시 숫자만 포함할 수 있습니다."; $lang['form_validation_is_numeric'] = "{field} 필드는 반드시 숫자만 포함할 수 있습니다."; $lang['form_validation_integer'] = "{field} 필드는 반드시 정수만 포함할 수 있습니다."; $lang['form_validation_regex_match'] = "{field} 필드는 형식이 맞지 않습니다."; $lang['form_validation_matches'] = "{field} 필드가 {param} 필드와 일치하지 않습니다."; $lang['form_validation_differs'] = '{field} 필드는 {param} 필드와 값이 달라야만 합니다.'; $lang['form_validation_is_unique'] = "{field} 필드는 고유값을 포함해야 합니다."; $lang['form_validation_is_natural'] = "{field} 필드는 자연수만 포함할 수 있습니다."; $lang['form_validation_is_natural_no_zero'] = "{field} 필드는 0을 초과하는 자연수만 포함할 수 있습니다."; $lang['form_validation_decimal'] = "{field} 필드는 10진수여야 합니다."; $lang['form_validation_less_than'] = "{field} 필드는 {param} 필드보다 작은 값이어야 합니다."; $lang['form_validation_less_than_equal_to'] = "{field} 필드는 {param} 필드보다 작거나 같은 값이어야 합니다."; $lang['form_validation_greater_than'] = "{field} 필드는 {param} 필드보다 큰 숫자여야 합니다."; $lang['form_validation_greater_than_equal_to'] = "{field} 필드는 {param} 필드보다 크거나 같은 숫자여야 합니다."; $lang['form_validation_error_message_not_set'] = "{field} 필드는 오류 메세지와 일치하여 사용할 수 없습니다."; $lang['form_validation_in_list'] = "{field} 필드는 다음중 하나여야 합니다. : {param}"; |
'PHP > CodeIgniter' 카테고리의 다른 글
CI 서브 폴더 사용 (0) | 2021.02.17 |
---|---|
[CodeIgniter] _rmap을 이용한 화면 상단, 하단 레이어 고정 (0) | 2020.02.12 |
[CodeIgniter] 컨트롤러(Controllers) 사용방법 (0) | 2019.07.31 |
[CodeIgniter] DataBase 접속 설정하기 (0) | 2019.07.25 |
[CodeIgniter] 리눅스 환경에 코드이그나이터 세팅하기 (0) | 2019.07.23 |