1
0
mirror of https://github.com/phpbb/phpbb.git synced 2025-08-05 08:17:47 +02:00

Permit null values for non-required integer custom profile fields and ensure zero complies with the range limits. #40925

git-svn-id: file:///svn/phpbb/branches/phpBB-3_0_0@9788 89ea8834-ac86-4346-8a33-228a782c2dd0
This commit is contained in:
Chris Smith
2009-07-19 00:20:03 +00:00
parent 08a7255c8e
commit 4f6f9c424d
2 changed files with 10 additions and 15 deletions

View File

@@ -90,18 +90,6 @@ class custom_profile
*/
function validate_profile_field($field_type, &$field_value, $field_data)
{
switch ($field_type)
{
case FIELD_INT:
case FIELD_DROPDOWN:
$field_value = (int) $field_value;
break;
case FIELD_BOOL:
$field_value = (bool) $field_value;
break;
}
switch ($field_type)
{
case FIELD_DATE:
@@ -133,6 +121,8 @@ class custom_profile
break;
case FIELD_BOOL:
$field_value = (bool) $field_value;
if (!$field_value && $field_data['field_required'])
{
return 'FIELD_REQUIRED';
@@ -140,10 +130,12 @@ class custom_profile
break;
case FIELD_INT:
if (empty($field_value) && !$field_data['field_required'])
if (trim($field_value) === '' && !$field_data['field_required'])
{
return false;
}
$field_value = (int) $field_value;
if ($field_value < $field_data['field_minlen'])
{
@@ -156,6 +148,8 @@ class custom_profile
break;
case FIELD_DROPDOWN:
$field_value = (int) $field_value;
if ($field_value == $field_data['field_novalue'] && $field_data['field_required'])
{
return 'FIELD_REQUIRED';
@@ -514,7 +508,7 @@ class custom_profile
switch ($this->profile_types[$field_type])
{
case 'int':
if ($value == '')
if ($value === '')
{
return NULL;
}
@@ -644,7 +638,7 @@ class custom_profile
}
}
return (is_null($value)) ? '' : (int) $value;
return (is_null($value) || $value === '') ? '' : (int) $value;
}
else
{