From e13fea5f71c5a8ae4ace1c52483fb61b9f1b87c5 Mon Sep 17 00:00:00 2001 From: Lance Vincent Date: Mon, 26 Jan 2015 12:20:48 +0800 Subject: Form Validation - Between method Value must be within a given numeric range --- system/language/english/form_validation_lang.php | 1 + system/libraries/Form_validation.php | 21 +++++++++++++++++++++ user_guide_src/source/libraries/form_validation.rst | 1 + 3 files changed, 23 insertions(+) diff --git a/system/language/english/form_validation_lang.php b/system/language/english/form_validation_lang.php index 9156ebef0..b7ee25a38 100644 --- a/system/language/english/form_validation_lang.php +++ b/system/language/english/form_validation_lang.php @@ -53,6 +53,7 @@ $lang['form_validation_less_than'] = 'The {field} field must contain a number l $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_between'] = 'The {field} field must contain a number between {param}.'; /* End of file form_validation_lang.php */ /* Location: ./system/language/english/form_validation_lang.php */ \ No newline at end of file diff --git a/system/libraries/Form_validation.php b/system/libraries/Form_validation.php index b640f1ec1..16766ca66 100644 --- a/system/libraries/Form_validation.php +++ b/system/libraries/Form_validation.php @@ -1437,6 +1437,27 @@ class CI_Form_validation { // -------------------------------------------------------------------- + /** + * Between two numeric values + * + * @param int + * @param string + * @return bool + */ + public function between($str, $range) + { + if ( ! preg_match('/^\s?(\d+)\s?,\s?(\d+)\s?$/', $range)) + { + return FALSE; + } + + list($range_start, $range_end) = array_map('intval', explode(',', $range)); + + return is_numeric($str) ? ($str >= $range_start && $str <= $range_end) : FALSE; + } + + // -------------------------------------------------------------------- + /** * Is a Natural number (0,1,2,3, etc.) * diff --git a/user_guide_src/source/libraries/form_validation.rst b/user_guide_src/source/libraries/form_validation.rst index 2b7780ff2..9776d7318 100644 --- a/user_guide_src/source/libraries/form_validation.rst +++ b/user_guide_src/source/libraries/form_validation.rst @@ -962,6 +962,7 @@ Rule Parameter Description not numeric. **less_than_equal_to** Yes Returns FALSE if the form element is greater than the parameter value, less_than_equal_to[8] or not numeric. +**between** Yes Returns FALSE if the form element is not within the given range. between[10,20] **alpha** No Returns FALSE if the form element contains anything other than alphabetical characters. **alpha_numeric** No Returns FALSE if the form element contains anything other than alpha-numeric characters. **alpha_numeric_spaces** No Returns FALSE if the form element contains anything other than alpha-numeric characters -- cgit v1.2.3-24-g4f1b From 8e72ecf6182a88cc7224f94a979085a06fea03d4 Mon Sep 17 00:00:00 2001 From: Lance Vincent Date: Mon, 26 Jan 2015 12:31:58 +0800 Subject: Form Validation - In Method Returns true if a given value matches any of the specified list --- system/language/english/form_validation_lang.php | 1 + system/libraries/Form_validation.php | 16 ++++++++++++++++ user_guide_src/source/libraries/form_validation.rst | 1 + 3 files changed, 18 insertions(+) diff --git a/system/language/english/form_validation_lang.php b/system/language/english/form_validation_lang.php index b7ee25a38..3bc4515f5 100644 --- a/system/language/english/form_validation_lang.php +++ b/system/language/english/form_validation_lang.php @@ -54,6 +54,7 @@ $lang['form_validation_less_than_equal_to'] = 'The {field} field must contain a $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_between'] = 'The {field} field must contain a number between {param}.'; +$lang['form_validation_in'] = 'The {field} field must be within a predetermined list: {param}.'; /* End of file form_validation_lang.php */ /* Location: ./system/language/english/form_validation_lang.php */ \ No newline at end of file diff --git a/system/libraries/Form_validation.php b/system/libraries/Form_validation.php index 16766ca66..e98c87f81 100644 --- a/system/libraries/Form_validation.php +++ b/system/libraries/Form_validation.php @@ -1458,6 +1458,22 @@ class CI_Form_validation { // -------------------------------------------------------------------- + /** + * Value should be within an array of values + * + * @param string + * @param array + * @return bool + */ + public function in($value, $list) + { + $list = array_map('trim', explode(',', (string) $list)); + + return in_array((string) $value, $list); + } + + // -------------------------------------------------------------------- + /** * Is a Natural number (0,1,2,3, etc.) * diff --git a/user_guide_src/source/libraries/form_validation.rst b/user_guide_src/source/libraries/form_validation.rst index 9776d7318..3f6e4905f 100644 --- a/user_guide_src/source/libraries/form_validation.rst +++ b/user_guide_src/source/libraries/form_validation.rst @@ -963,6 +963,7 @@ Rule Parameter Description **less_than_equal_to** Yes Returns FALSE if the form element is greater than the parameter value, less_than_equal_to[8] or not numeric. **between** Yes Returns FALSE if the form element is not within the given range. between[10,20] +**in** Yes Returns FALSE if the form element is not within a predetermined list. in[red,blue,green] **alpha** No Returns FALSE if the form element contains anything other than alphabetical characters. **alpha_numeric** No Returns FALSE if the form element contains anything other than alpha-numeric characters. **alpha_numeric_spaces** No Returns FALSE if the form element contains anything other than alpha-numeric characters -- cgit v1.2.3-24-g4f1b From e700c31255ca2cf1a6c38bdf0db962cc48304e55 Mon Sep 17 00:00:00 2001 From: Lance Vincent Date: Mon, 26 Jan 2015 21:18:25 +0800 Subject: Form Validation - Date Method Value should be a valid date --- system/language/english/form_validation_lang.php | 1 + system/libraries/Form_validation.php | 25 ++++++++++++++++++++++ .../source/libraries/form_validation.rst | 1 + 3 files changed, 27 insertions(+) diff --git a/system/language/english/form_validation_lang.php b/system/language/english/form_validation_lang.php index 3bc4515f5..1230ce566 100644 --- a/system/language/english/form_validation_lang.php +++ b/system/language/english/form_validation_lang.php @@ -55,6 +55,7 @@ $lang['form_validation_greater_than'] = 'The {field} field must contain a numbe $lang['form_validation_greater_than_equal_to'] = 'The {field} field must contain a number greater than or equal to {param}.'; $lang['form_validation_between'] = 'The {field} field must contain a number between {param}.'; $lang['form_validation_in'] = 'The {field} field must be within a predetermined list: {param}.'; +$lang['form_validation_date'] = 'The {field} field must be a proper date.'; /* End of file form_validation_lang.php */ /* Location: ./system/language/english/form_validation_lang.php */ \ No newline at end of file diff --git a/system/libraries/Form_validation.php b/system/libraries/Form_validation.php index e98c87f81..3e8204eee 100644 --- a/system/libraries/Form_validation.php +++ b/system/libraries/Form_validation.php @@ -1474,6 +1474,31 @@ class CI_Form_validation { // -------------------------------------------------------------------- + /** + * Value should be a valid date + * + * @param string + * @return bool + */ + public function date($date) + { + if (strtotime($date) === FALSE) + { + return FALSE; + } + + if ($date instanceof DateTime) + { + return TRUE; + } + + $date = date_parse($date); + + return checkdate($date['month'], $date['day'], $date['year']); + } + + // -------------------------------------------------------------------- + /** * Is a Natural number (0,1,2,3, etc.) * diff --git a/user_guide_src/source/libraries/form_validation.rst b/user_guide_src/source/libraries/form_validation.rst index 3f6e4905f..3f723696e 100644 --- a/user_guide_src/source/libraries/form_validation.rst +++ b/user_guide_src/source/libraries/form_validation.rst @@ -964,6 +964,7 @@ Rule Parameter Description or not numeric. **between** Yes Returns FALSE if the form element is not within the given range. between[10,20] **in** Yes Returns FALSE if the form element is not within a predetermined list. in[red,blue,green] +**date** No Returns FALSE if the form element is not a proper date. **alpha** No Returns FALSE if the form element contains anything other than alphabetical characters. **alpha_numeric** No Returns FALSE if the form element contains anything other than alpha-numeric characters. **alpha_numeric_spaces** No Returns FALSE if the form element contains anything other than alpha-numeric characters -- cgit v1.2.3-24-g4f1b From fd5b2acabda081e3dccc2e50997b4dcfac2caf88 Mon Sep 17 00:00:00 2001 From: Lance Vincent Date: Wed, 28 Jan 2015 01:36:10 +0800 Subject: Form Validation - Not In Method --- system/language/english/form_validation_lang.php | 1 + system/libraries/Form_validation.php | 16 ++++++++++++++++ user_guide_src/source/libraries/form_validation.rst | 1 + 3 files changed, 18 insertions(+) diff --git a/system/language/english/form_validation_lang.php b/system/language/english/form_validation_lang.php index 1230ce566..a98f49b39 100644 --- a/system/language/english/form_validation_lang.php +++ b/system/language/english/form_validation_lang.php @@ -55,6 +55,7 @@ $lang['form_validation_greater_than'] = 'The {field} field must contain a numbe $lang['form_validation_greater_than_equal_to'] = 'The {field} field must contain a number greater than or equal to {param}.'; $lang['form_validation_between'] = 'The {field} field must contain a number between {param}.'; $lang['form_validation_in'] = 'The {field} field must be within a predetermined list: {param}.'; +$lang['form_validation_not_in'] = 'The {field} field must not be within: {param}.'; $lang['form_validation_date'] = 'The {field} field must be a proper date.'; /* End of file form_validation_lang.php */ diff --git a/system/libraries/Form_validation.php b/system/libraries/Form_validation.php index 3e8204eee..74a5b87a0 100644 --- a/system/libraries/Form_validation.php +++ b/system/libraries/Form_validation.php @@ -1474,6 +1474,22 @@ class CI_Form_validation { // -------------------------------------------------------------------- + /** + * Value should not be within an array of values + * + * @param string + * @param array + * @return bool + */ + public function not_in($value, $list) + { + $list = array_map('trim', explode(',', (string) $list)); + + return ! in_array((string) $value, $list); + } + + // -------------------------------------------------------------------- + /** * Value should be a valid date * diff --git a/user_guide_src/source/libraries/form_validation.rst b/user_guide_src/source/libraries/form_validation.rst index 3f723696e..cbf802864 100644 --- a/user_guide_src/source/libraries/form_validation.rst +++ b/user_guide_src/source/libraries/form_validation.rst @@ -964,6 +964,7 @@ Rule Parameter Description or not numeric. **between** Yes Returns FALSE if the form element is not within the given range. between[10,20] **in** Yes Returns FALSE if the form element is not within a predetermined list. in[red,blue,green] +**not_in** Yes Returns FALSE if the form element is within a predetermined list. not_in[red,blue,green] **date** No Returns FALSE if the form element is not a proper date. **alpha** No Returns FALSE if the form element contains anything other than alphabetical characters. **alpha_numeric** No Returns FALSE if the form element contains anything other than alpha-numeric characters. -- cgit v1.2.3-24-g4f1b From c24824329416dbde8700839c04953b6dbebd5ccf Mon Sep 17 00:00:00 2001 From: Lance Vincent Date: Wed, 28 Jan 2015 01:55:21 +0800 Subject: Form Validation - Before Date --- system/language/english/form_validation_lang.php | 1 + system/libraries/Form_validation.php | 14 ++++++++++++++ user_guide_src/source/libraries/form_validation.rst | 1 + 3 files changed, 16 insertions(+) diff --git a/system/language/english/form_validation_lang.php b/system/language/english/form_validation_lang.php index a98f49b39..69ea1acbd 100644 --- a/system/language/english/form_validation_lang.php +++ b/system/language/english/form_validation_lang.php @@ -57,6 +57,7 @@ $lang['form_validation_between'] = 'The {field} field must contain a number bet $lang['form_validation_in'] = 'The {field} field must be within a predetermined list: {param}.'; $lang['form_validation_not_in'] = 'The {field} field must not be within: {param}.'; $lang['form_validation_date'] = 'The {field} field must be a proper date.'; +$lang['form_validation_before_date'] = 'The {field} field must be lesser than {param}.'; /* End of file form_validation_lang.php */ /* Location: ./system/language/english/form_validation_lang.php */ \ No newline at end of file diff --git a/system/libraries/Form_validation.php b/system/libraries/Form_validation.php index 74a5b87a0..e5a1fae13 100644 --- a/system/libraries/Form_validation.php +++ b/system/libraries/Form_validation.php @@ -1515,6 +1515,20 @@ class CI_Form_validation { // -------------------------------------------------------------------- + /** + * Date should be lesser than $before_date + * + * @param string + * @param string + * @return bool + */ + public function before_date($date, $before_date) + { + return (strtotime($date)!==FALSE && strtotime($before_date)!==FALSE) ? (strtotime($date) < strtotime($before_date)) : FALSE; + } + + // -------------------------------------------------------------------- + /** * Is a Natural number (0,1,2,3, etc.) * diff --git a/user_guide_src/source/libraries/form_validation.rst b/user_guide_src/source/libraries/form_validation.rst index cbf802864..645d7d21c 100644 --- a/user_guide_src/source/libraries/form_validation.rst +++ b/user_guide_src/source/libraries/form_validation.rst @@ -966,6 +966,7 @@ Rule Parameter Description **in** Yes Returns FALSE if the form element is not within a predetermined list. in[red,blue,green] **not_in** Yes Returns FALSE if the form element is within a predetermined list. not_in[red,blue,green] **date** No Returns FALSE if the form element is not a proper date. +**before_date** Yes Returns FALSE if the form element is greater than a predetermined date. before_date[2015-01-27] **alpha** No Returns FALSE if the form element contains anything other than alphabetical characters. **alpha_numeric** No Returns FALSE if the form element contains anything other than alpha-numeric characters. **alpha_numeric_spaces** No Returns FALSE if the form element contains anything other than alpha-numeric characters -- cgit v1.2.3-24-g4f1b From d62e7bc8f2f760e8c05a73df266951a2af817c83 Mon Sep 17 00:00:00 2001 From: Lance Vincent Date: Wed, 28 Jan 2015 01:57:42 +0800 Subject: Form Validation - After Date --- system/language/english/form_validation_lang.php | 1 + system/libraries/Form_validation.php | 14 ++++++++++++++ user_guide_src/source/libraries/form_validation.rst | 1 + 3 files changed, 16 insertions(+) diff --git a/system/language/english/form_validation_lang.php b/system/language/english/form_validation_lang.php index 69ea1acbd..1362ef0d8 100644 --- a/system/language/english/form_validation_lang.php +++ b/system/language/english/form_validation_lang.php @@ -58,6 +58,7 @@ $lang['form_validation_in'] = 'The {field} field must be within a predetermined $lang['form_validation_not_in'] = 'The {field} field must not be within: {param}.'; $lang['form_validation_date'] = 'The {field} field must be a proper date.'; $lang['form_validation_before_date'] = 'The {field} field must be lesser than {param}.'; +$lang['form_validation_after_date'] = 'The {field} field must be greater than {param}.'; /* End of file form_validation_lang.php */ /* Location: ./system/language/english/form_validation_lang.php */ \ No newline at end of file diff --git a/system/libraries/Form_validation.php b/system/libraries/Form_validation.php index e5a1fae13..778b90552 100644 --- a/system/libraries/Form_validation.php +++ b/system/libraries/Form_validation.php @@ -1529,6 +1529,20 @@ class CI_Form_validation { // -------------------------------------------------------------------- + /** + * Date should be greater than $after_date + * + * @param string + * @param string + * @return bool + */ + public function after_date($date, $after_date) + { + return (strtotime($date)!==FALSE && strtotime($after_date)!==FALSE) ? (strtotime($date) > strtotime($after_date)) : FALSE; + } + + // -------------------------------------------------------------------- + /** * Is a Natural number (0,1,2,3, etc.) * diff --git a/user_guide_src/source/libraries/form_validation.rst b/user_guide_src/source/libraries/form_validation.rst index 645d7d21c..d14000e62 100644 --- a/user_guide_src/source/libraries/form_validation.rst +++ b/user_guide_src/source/libraries/form_validation.rst @@ -967,6 +967,7 @@ Rule Parameter Description **not_in** Yes Returns FALSE if the form element is within a predetermined list. not_in[red,blue,green] **date** No Returns FALSE if the form element is not a proper date. **before_date** Yes Returns FALSE if the form element is greater than a predetermined date. before_date[2015-01-27] +**after_date** Yes Returns FALSE if the form element is less than a predetermined date. after_date[2015-01-27] **alpha** No Returns FALSE if the form element contains anything other than alphabetical characters. **alpha_numeric** No Returns FALSE if the form element contains anything other than alpha-numeric characters. **alpha_numeric_spaces** No Returns FALSE if the form element contains anything other than alpha-numeric characters -- cgit v1.2.3-24-g4f1b