summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDerek Jones <derek.jones@ellislab.com>2008-01-18 20:50:49 +0100
committerDerek Jones <derek.jones@ellislab.com>2008-01-18 20:50:49 +0100
commit07edd4b16f8037ca5adda499c72710aaf3bdf215 (patch)
tree293602eaa9c19bf7413b0adadbfd4226788c3955
parent3d879d529107c0c9d3f1e6b894d9ed17b6e6c54f (diff)
modified prep_for_form() to accept an array so POST arrays can be validated with the Validation class via callback functions and have fields properly assigned
-rw-r--r--system/libraries/Validation.php20
-rw-r--r--user_guide/changelog.html1
2 files changed, 15 insertions, 6 deletions
diff --git a/system/libraries/Validation.php b/system/libraries/Validation.php
index 84415030d..061cacc9c 100644
--- a/system/libraries/Validation.php
+++ b/system/libraries/Validation.php
@@ -86,8 +86,8 @@ class CI_Validation {
}
foreach($this->_fields as $key => $val)
- {
- $this->$key = ( ! isset($_POST[$key]) OR is_array($_POST[$key])) ? '' : $this->prep_for_form($_POST[$key]);
+ {
+ $this->$key = ( ! isset($_POST[$key])) ? '' : $this->prep_for_form($_POST[$key]);
$error = $key.'_error';
if ( ! isset($this->$error))
@@ -659,14 +659,22 @@ class CI_Validation {
* @param string
* @return string
*/
- function prep_for_form($str = '')
+ function prep_for_form($data = '')
{
- if ($this->_safe_form_data == FALSE OR $str == '')
+ if (is_array($data))
+ {
+ foreach ($data as $key => $val)
+ {
+ $data[$key] = $this->prep_for_form($val);
+ }
+ }
+
+ if ($this->_safe_form_data == FALSE OR $data == '')
{
- return $str;
+ return $data;
}
- return str_replace(array("'", '"', '<', '>'), array("&#39;", "&quot;", '&lt;', '&gt;'), stripslashes($str));
+ return str_replace(array("'", '"', '<', '>'), array("&#39;", "&quot;", '&lt;', '&gt;'), stripslashes($data));
}
// --------------------------------------------------------------------
diff --git a/user_guide/changelog.html b/user_guide/changelog.html
index 9ef6bd36c..0f6c677d2 100644
--- a/user_guide/changelog.html
+++ b/user_guide/changelog.html
@@ -94,6 +94,7 @@ Change Log
<li>Moved the safe mode and auth checks for the Email library into the constructor. </li>
<li>Moved part of the userguide menu javascript to an external file.</li>
<li>Modified variable names in _ci_load() method of Loader class to avoid conflicts with view variables.</li>
+ <li>Modified prep_for_form() in the Validation class to accept arrays, adding support for POST array validation (via callbacks only)</li>
<li>Changed the behaviour of custom callbacks so that they no longer trigger the &quot;required&quot; rule. </li>
<li>Changed the behaviour of variables submitted to the where() clause with no values to auto set &quot;IS NULL&quot;</li>
<li>Strengthened the Encryption library to help protect against man in the middle attacks when MCRYPT_MODE_CBC mode is used.</li>