mirror of
https://github.com/phpbb/phpbb.git
synced 2025-04-21 08:12:17 +02:00
Merge branch 'ticket/bantu/9970' into develop-olympus
* ticket/bantu/9970: [ticket/9970] Rename validate_language() to validate_language_iso_name(). [ticket/9970] Do not allow switching to languages not installed on reg. page. [ticket/9970] Check whether language pack is installed. [ticket/9970] User language input is checked for existance
This commit is contained in:
commit
2f57bfb6f2
@ -1421,6 +1421,31 @@ function validate_match($string, $optional = false, $match = '')
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Validate Language Pack ISO Name
|
||||
*
|
||||
* Tests whether a language name is valid and installed
|
||||
*
|
||||
* @param string $lang_iso The language string to test
|
||||
*
|
||||
* @return bool|string Either false if validation succeeded or
|
||||
* a string which will be used as the error message
|
||||
* (with the variable name appended)
|
||||
*/
|
||||
function validate_language_iso_name($lang_iso)
|
||||
{
|
||||
global $db;
|
||||
|
||||
$sql = 'SELECT lang_id
|
||||
FROM ' . LANG_TABLE . "
|
||||
WHERE lang_iso = '" . $db->sql_escape($lang_iso) . "'";
|
||||
$result = $db->sql_query($sql);
|
||||
$lang_id = (int) $db->sql_fetchfield('lang_id');
|
||||
$db->sql_freeresult($result);
|
||||
|
||||
return ($lang_id) ? false : 'WRONG_DATA';
|
||||
}
|
||||
|
||||
/**
|
||||
* Check to see if the username has been taken, or if it is disallowed.
|
||||
* Also checks if it includes the " character, which we don't allow in usernames.
|
||||
|
@ -65,7 +65,7 @@ class ucp_prefs
|
||||
|
||||
$error = validate_data($data, array(
|
||||
'dateformat' => array('string', false, 1, 30),
|
||||
'lang' => array('match', false, '#^[a-z0-9_\-]{2,}$#i'),
|
||||
'lang' => array('language_iso_name'),
|
||||
'tz' => array('num', false, -14, 14),
|
||||
));
|
||||
|
||||
|
@ -56,7 +56,7 @@ class ucp_register
|
||||
{
|
||||
$use_lang = ($change_lang) ? basename($change_lang) : basename($user_lang);
|
||||
|
||||
if (file_exists($user->lang_path . $use_lang . '/'))
|
||||
if (!validate_language_iso_name($use_lang))
|
||||
{
|
||||
if ($change_lang)
|
||||
{
|
||||
@ -210,7 +210,7 @@ class ucp_register
|
||||
array('email')),
|
||||
'email_confirm' => array('string', false, 6, 60),
|
||||
'tz' => array('num', false, -14, 14),
|
||||
'lang' => array('match', false, '#^[a-z_\-]{2,}$#i'),
|
||||
'lang' => array('language_iso_name'),
|
||||
));
|
||||
|
||||
if (!check_form_key('ucp_register'))
|
||||
|
Loading…
x
Reference in New Issue
Block a user