1
0
mirror of https://github.com/phpbb/phpbb.git synced 2025-04-20 07:42:09 +02:00

Merge branch 'develop-olympus' into develop

* develop-olympus:
  [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:
Oleg Pudeyev 2011-03-11 21:55:46 -05:00
commit df096b6b52
3 changed files with 28 additions and 3 deletions

View File

@ -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.

View File

@ -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),
));

View File

@ -57,7 +57,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)
{
@ -211,7 +211,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'))