From 57fdecdc0e7ca0751ac28fd4c34723033383bb14 Mon Sep 17 00:00:00 2001 From: "Paul S. Owen" Date: Sun, 27 Jan 2002 03:10:40 +0000 Subject: Fix various bugs; password length warning, proper warnings for username/email errors git-svn-id: file:///svn/phpbb/trunk@1965 89ea8834-ac86-4346-8a33-228a782c2dd0 --- phpBB/includes/functions.php | 92 +++++++++++++++----------------------------- 1 file changed, 30 insertions(+), 62 deletions(-) (limited to 'phpBB/includes/functions.php') diff --git a/phpBB/includes/functions.php b/phpBB/includes/functions.php index 52b153ce5b..09466e0a4f 100644 --- a/phpBB/includes/functions.php +++ b/phpBB/includes/functions.php @@ -191,7 +191,7 @@ function make_jumpbox($match_forum_id = 0) if( isset($SID) ) { -// $boxstring .= ''; + $boxstring .= ''; } return($boxstring); @@ -304,7 +304,6 @@ function init_userprefs($userdata) $new_value = str_replace("_lang", "_" . $board_config['default_lang'], $value); $images[$key] = ( file_exists($new_value) ) ? $new_value : str_replace("_lang", "_english", $value); -// list($images_width[$key], $images_height[$key]) = getimagesize($images[$key]); } } @@ -498,73 +497,42 @@ function generate_pagination($base_url, $num_items, $per_page, $start_item, $add // function validate_username($username) { - global $db; - - switch(SQL_LAYER) + global $db, $lang; + + $sql = "SELECT u.username, g.group_name + FROM " . USERS_TABLE . " u, " . GROUPS_TABLE . " g, " . USER_GROUP_TABLE . " ug + WHERE ug.user_id = u.user_id + AND g.group_id = ug.group_id + AND ( LOWER(u.username) = '" . strtolower(str_replace("\'", "''", $username)) . "' + OR LOWER(g.group_name) = '" . strtolower(str_replace("\'", "''", $username)) . "' )"; + if ( $result = $db->sql_query($sql) ) { - case 'mysql': - case 'mysql4': - $sql_users = "SELECT u.username, g.group_name - FROM " . USERS_TABLE . " u, " . GROUPS_TABLE . " g, " . USER_GROUP_TABLE . " ug - WHERE ug.user_id = u.user_id - AND g.group_id = ug.group_id - AND ( LOWER(u.username) = '" . strtolower(str_replace("\'", "''", $username)) . "' - OR LOWER(g.group_name) = '" . strtolower(str_replace("\'", "''", $username)) . "' )"; - $sql_disallow = "SELECT disallow_username - FROM " . DISALLOW_TABLE . " - WHERE '" . str_replace("\'", "''", $username) . "' LIKE disallow_username"; - if($result = $db->sql_query($sql_users)) - { - if($db->sql_numrows($result) > 0) - { - return(FALSE); - } - } - if($result = $db->sql_query($sql_disallow)) - { - if($db->sql_numrows($result) > 0) - { - return(FALSE); - } - } - break; + if ( $db->sql_fetchrow($result) ) + { + return array('error' => $lang['Username_taken']); + } + } - default: - $sql = "SELECT u.username, g.group_name - FROM " . USERS_TABLE . " u, " . GROUPS_TABLE . " g, " . USER_GROUP_TABLE . " ug - WHERE ug.user_id = u.user_id - AND g.group_id = ug.group_id - AND ( LOWER(u.username) = '" . strtolower(str_replace("\'", "''", $username)) . "' - OR LOWER(g.group_name) = '" . strtolower(str_replace("\'", "''", $username)) . "' ) - UNION - SELECT disallow_username, NULL - FROM " . DISALLOW_TABLE . " - WHERE '" . str_replace("\'", "''", $username) . "' LIKE disallow_username"; - if($result = $db->sql_query($sql)) - { - if($db->sql_numrows($result) > 0) - { - return(FALSE); - } - } - break; + $sql = "SELECT disallow_username + FROM " . DISALLOW_TABLE . " + WHERE '" . str_replace("\'", "''", $username) . "' LIKE disallow_username"; + if ( $result = $db->sql_query($sql) ) + { + if ( $db->sql_fetchrow($result) ) + { + return array('error' => $lang['Username_disallowed']); + } } $sql = "SELECT word FROM " . WORDS_TABLE; - if( !$words_result = $db->sql_query($sql) ) + if ( $result = $db->sql_query($sql) ) { - message_die(GENERAL_ERROR, "Couldn't get censored words from database.", "", __LINE__, __FILE__, $sql); - } - else - { - $word_list = $db->sql_fetchrowset($words_result); - - for($i = 0; $i < count($word_list); $i++) + while( $row = $db->sql_fetchrow($result) ) { - if( preg_match("/\b(" . str_replace("\*", "\w*?", preg_quote($word_list[$i]['word'])) . ")\b/i", $username) ) + if( preg_match("/\b(" . str_replace("\*", "\w*?", preg_quote($row['word'])) . ")\b/i", $username) ) { - return(FALSE); + return array('error' => $lang['Username_disallowed']); } } } @@ -572,10 +540,10 @@ function validate_username($username) // Don't allow " in username. if ( strstr($username, '"') ) { - return FALSE; + return array('error' => $lang['Username_invalid']); } - return(TRUE); + return array('error' => ''); } -- cgit v1.2.1