diff --git a/phpBB/adm/admin_profile.php b/phpBB/adm/admin_profile.php
index c0f7cfff4a..9f63f6ae38 100644
--- a/phpBB/adm/admin_profile.php
+++ b/phpBB/adm/admin_profile.php
@@ -239,9 +239,15 @@ if ($mode == 'create' || $mode == 'edit')
// step 2
foreach ($exclude[2] as $key)
{
- if ($key == 'field_required' || $key == 'field_hide' || $key == 'field_show_on_reg')
+ if ($key == 'field_required' || $key == 'field_show_on_reg' || $key == 'field_hide')
{
- $var = (isset($_REQUEST[$key])) ? request_var($key, 0) : $field_row[$key];
+ $var = (!$submit && $step == 1) ? $field_row[$key] : request_var($key, 0);
+
+ // Damn checkboxes...
+ if (!$submit && $step == 1)
+ {
+ $_REQUEST[$key] = $var;
+ }
}
else
{
@@ -499,7 +505,6 @@ if ($mode == 'create' || $mode == 'edit')
break;
case 2:
-
?>
lang['REQUIRED_FIELD']; ?> lang['REQUIRED_FIELD_EXPLAIN']; ?> |
@@ -1225,16 +1230,9 @@ function build_hidden_fields($key_ary)
foreach ($key_ary as $key)
{
- $var = isset($_POST[$key]) ? $_POST[$key] : false;
+ $var = isset($_REQUEST[$key]) ? $_REQUEST[$key] : false;
- if ($key == 'field_required' || $key == 'field_hide' || $key == 'field_show_on_reg')
- {
- if (!$var)
- {
- $var = 0;
- }
- }
- else if (!$var)
+ if ($var === false)
{
continue;
}
diff --git a/phpBB/includes/functions_profile_fields.php b/phpBB/includes/functions_profile_fields.php
index e10b193f53..c6bd67b2bb 100644
--- a/phpBB/includes/functions_profile_fields.php
+++ b/phpBB/includes/functions_profile_fields.php
@@ -105,14 +105,14 @@ class custom_profile
break;
case 'FIELD_TOO_SHORT':
case 'FIELD_TOO_SMALL':
- $error = sprintf($user->lang[$cp_result], $row['lang_name'], $field_data['field_minlen']);
+ $error = sprintf($user->lang[$cp_result], $row['lang_name'], $row['field_minlen']);
break;
case 'FIELD_TOO_LONG':
case 'FIELD_TOO_LARGE':
- $error = sprintf($user->lang[$cp_result], $row['lang_name'], $field_data['field_maxlen']);
+ $error = sprintf($user->lang[$cp_result], $row['lang_name'], $row['field_maxlen']);
break;
case 'FIELD_INVALID_CHARS':
- switch ($field_data['field_validation'])
+ switch ($row['field_validation'])
{
case '[0-9]+':
$error = sprintf($user->lang[$cp_result . '_NUMBERS_ONLY'], $row['lang_name']);