1
0
mirror of https://github.com/phpbb/phpbb.git synced 2025-08-06 16:56:44 +02:00

[ticket/11538] Use regex for testing color value and improve tests

We are now using a regex with preg_match() in order to properly check
if the entered color value is in hex color format or not. A proper
error message is triggered if an incorrect color value is entered and
the prepended '#' is removed if necessary.

PHPBB3-11538
This commit is contained in:
Marc Alexander
2013-05-14 19:44:55 +02:00
parent b7b0b0ccc3
commit a547ba3f9d
3 changed files with 30 additions and 42 deletions

View File

@@ -595,18 +595,22 @@ class ucp_groups
$error[] = $user->lang['FORM_INVALID'];
}
if (!sizeof($error))
if (!empty($submit_ary['colour']))
{
// Make sure maximum length of 6 of group color is not exceeded
if (strpos($submit_ary['colour'], '#') === 0)
preg_match('/^(#?)+(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{3})\b/', $submit_ary['colour'], $group_colour);
if (sizeof($group_colour))
{
$submit_ary['colour'] = substr($submit_ary['colour'], 1, 6);
$submit_ary['colour'] = (strpos($group_colour[0], '#') !== false) ? str_replace('#', '', $group_colour[0]) : $group_colour[0];
}
else
{
$submit_ary['colour'] = substr($submit_ary['colour'], 0, 6);
$error[] = $user->lang['COLOUR_INVALID'];
}
}
if (!sizeof($error))
{
// Only set the rank, colour, etc. if it's changed or if we're adding a new
// group. This prevents existing group members being updated if no changes
// were made.