diff options
Diffstat (limited to 'phpBB/functions')
-rw-r--r-- | phpBB/functions/auth.php | 229 | ||||
-rw-r--r-- | phpBB/functions/error.php | 109 | ||||
-rw-r--r-- | phpBB/functions/functions.php | 160 |
3 files changed, 329 insertions, 169 deletions
diff --git a/phpBB/functions/auth.php b/phpBB/functions/auth.php index 6f355e2316..9de568bcc9 100644 --- a/phpBB/functions/auth.php +++ b/phpBB/functions/auth.php @@ -33,88 +33,91 @@ */ function auth($type, $db, $id = "", $user_ip = "") { - global $userdata; - switch($type) - { - case 'ip ban': - $sql = "DELETE FROM ".BANLIST_TABLE." - WHERE (ban_end < ". mktime(date("H"), date("i"), date("s"), date("m"), date("d"), date("Y")).") - AND (ban_end > 0)"; - $db->sql_query($sql); - $sql = "SELECT ban_ip FROM ".BANLIST_TABLE; - if($result = $db->sql_query($sql)) - { - if($totalrows = $db->sql_numrows($result)) - { - $iprow = $db->sql_fetchrowset($result); - for($x = 0; $x < $totalrows; $x++) - { - $ip = $iprow[$x]["ban_ip"]; - if($ip[strlen($ip) - 1] == ".") - { - $db_ip = explode(".", $ip); - $this_ip = explode(".", $user_ip); - - for($x = 0; $x < count($db_ip) - 1; $x++) - { - $my_ip .= $this_ip[$x] . "."; - } - - if($my_ip == $ip) - { - return(FALSE); - } - } - else - { - if($ipuser == $ip) - { - return(FALSE); - } - } - } - return(TRUE); - } - else - { - return(TRUE); - } - } - return(TRUE); - break; - case 'username ban': - $sql = "DELETE FROM ".BANLIST_TABLE." - WHERE (ban_end < ". mktime(date("H"), date("i"), date("s"), date("m"), date("d"), date("Y")).") - AND (ban_end > 0)"; - $db->sql_query($sql); - $sql = "SELECT ban_userid FROM ".BANLIST_TABLE." WHERE ban_userid = '$user_id'"; - if($result = $db->sql_query($sql)) - { - if($db->sql_numrows($result)) - { - return(FALSE); - } - else - { - return(TRUE); - } - } - else - { - return(TRUE); - } - break; - case 'login': - global $password; - if($userdata["user_password"] != md5($password)) - { - return(FALSE); - } - else - { - return(TRUE); - } - } + global $userdata; + switch($type) + { + case 'ip ban': + $sql = "DELETE FROM ".BANLIST_TABLE." + WHERE (ban_end < ". mktime(date("H"), date("i"), date("s"), date("m"), date("d"), date("Y")).") + AND (ban_end > 0)"; + $db->sql_query($sql); + $sql = "SELECT ban_ip FROM ".BANLIST_TABLE; + if($result = $db->sql_query($sql)) + { + if($totalrows = $db->sql_numrows($result)) + { + $iprow = $db->sql_fetchrowset($result); + for($x = 0; $x < $totalrows; $x++) + { + $ip = $iprow[$x]["ban_ip"]; + if($ip[strlen($ip) - 1] == ".") + { + $db_ip = explode(".", $ip); + $this_ip = explode(".", $user_ip); + + for($x = 0; $x < count($db_ip) - 1; $x++) + { + $my_ip .= $this_ip[$x] . "."; + } + if($my_ip == $ip) + { + return(FALSE); + } + } + else + { + if($ipuser == $ip) + { + return(FALSE); + } + } + } + return(TRUE); + } + else + { + return(TRUE); + } + } + return(TRUE); + break; + case 'username ban': + $sql = "DELETE FROM ".BANLIST_TABLE." + WHERE (ban_end < ". mktime(date("H"), date("i"), date("s"), date("m"), date("d"), date("Y")).") + AND (ban_end > 0)"; + $db->sql_query($sql); + $sql = "SELECT ban_userid FROM ".BANLIST_TABLE." WHERE ban_userid = '$user_id'"; + if($result = $db->sql_query($sql)) + { + if($db->sql_numrows($result)) + { + return(FALSE); + } + else + { + return(TRUE); + } + } + else + { + return(TRUE); + } + break; + case 'login': + global $password; + if($userdata["user_password"] != md5($password)) + { + return(FALSE); + } + else if($userdata["user_active"] == 0) + { + return(FALSE); + } + else + { + return(TRUE); + } + } } @@ -124,41 +127,41 @@ function auth($type, $db, $id = "", $user_ip = "") function get_userdata_from_id($userid, $db) { - $sql = "SELECT * FROM ".USERS_TABLE." WHERE user_id = $userid"; - if(!$result = $db->sql_query($sql)) - { - $userdata = array("error" => "1"); - return ($userdata); - } - if($db->sql_numrows($result)) - { - $myrow = $db->sql_fetchrowset($result); - return($myrow[0]); - } - else - { - $userdata = array("error" => "1"); - return ($userdata); - } + $sql = "SELECT * FROM ".USERS_TABLE." WHERE user_id = $userid"; + if(!$result = $db->sql_query($sql)) + { + $userdata = array("error" => "1"); + return ($userdata); + } + if($db->sql_numrows($result)) + { + $myrow = $db->sql_fetchrowset($result); + return($myrow[0]); + } + else + { + $userdata = array("error" => "1"); + return ($userdata); + } } function get_userdata($username, $db) { - $sql = "SELECT * FROM ".USERS_TABLE." WHERE username = '$username' AND user_level != ".DELETED; - if(!$result = $db->sql_query($sql)) - { - $userdata = array("error" => "1"); - } + $sql = "SELECT * FROM ".USERS_TABLE." WHERE username = '$username' AND user_level != ".DELETED; + if(!$result = $db->sql_query($sql)) + { + $userdata = array("error" => "1"); + } - if($db->sql_numrows($result)) - { - $myrow = $db->sql_fetchrowset($result); - return($myrow[0]); - } - else - { - $userdata = array("error" => "1"); - return ($userdata); - } + if($db->sql_numrows($result)) + { + $myrow = $db->sql_fetchrowset($result); + return($myrow[0]); + } + else + { + $userdata = array("error" => "1"); + return ($userdata); + } } ?> diff --git a/phpBB/functions/error.php b/phpBB/functions/error.php index 14f9e14073..d8027e1fad 100644 --- a/phpBB/functions/error.php +++ b/phpBB/functions/error.php @@ -24,64 +24,63 @@ function error_die($db, $error_code = "", $error_msg = "") { - global $template, $phpEx, $default_lang; - - if(!$template->get("overall_header")) - { - if(!empty($default_lang)) - { - include('language/lang_'.$default_lang.'.'.$phpEx); - } - else - { - include('language/lang_english.'.$phpEx); - } - include('includes/page_header.'.$phpEx); - } - if(!$error_msg) - { - switch($error_code) + global $template, $phpEx, $default_lang; + if(!defined("HEADER_INC")) + { + if(!empty($default_lang)) + { + include('language/lang_'.$default_lang.'.'.$phpEx); + } + else + { + include('language/lang_english.'.$phpEx); + } + include('includes/page_header.'.$phpEx); + } + if(!$error_msg) + { + switch($error_code) + { + case GENERAL_ERROR: + if(!$error_msg) + { + $error_msg = "An Error Occured"; + } + break; + case SQL_CONNECT: + $db_error = $db->sql_error(); + $error_msg = "Error: phpBB could not connect to the database. Reason: " . $db_error["message"]; + break; + case BANNED: + $error_msg = "You have been banned from this forum."; + break; + case QUERY_ERROR: + $db_error = $db->sql_error(); + $error_msg = "Error: phpBB could not query the database. Reason: " . $db_error["message"]; + break; + case SESSION_CREATE: + $error_msg = "Error creating session. Could not log you in. Please go back and try again."; + break; + case NO_POSTS: + $error_msg = "There are no posts in this forum. Click on the 'Post New Topic' link on this page to post one."; + break; + case LOGIN_FAILED: + $error_msg = "Login Failed. You have specified an incorrect/inactive username or invalid password, please go back and try again."; + break; + } + } + if(DEBUG) { - case GENERAL_ERROR: - if(!$error_msg) - { - $error_msg = "An Error Occured"; - } - break; - case SQL_CONNECT: - $db_error = $db->sql_error(); - $error_msg = "Error: phpBB could not connect to the database. Reason: " . $db_error["message"]; - break; - case BANNED: - $error_msg = "You have been banned from this forum."; - break; - case QUERY_ERROR: - $db_error = $db->sql_error(); - $error_msg = "Error: phpBB could not query the database. Reason: " . $db_error["message"]; - break; - case SESSION_CREATE: - $error_msg = "Error creating session. Could not log you in. Please go back and try again."; - break; - case NO_POSTS: - $error_msg = "There are no posts in this forum. Click on the 'Post New Topic' link on this page to post one."; - break; - case LOGIN_FAILED: - $error_msg = "Login Failed. You have specified an incorrect username or password, please go back and try again."; - break; + //$error_msg .= "<br>Line number: ".__LINE__."<br>In File: ".__FILE__; } - } - if(DEBUG) - { - //$error_msg .= "<br>Line number: ".__LINE__."<br>In File: ".__FILE__; - } - $template->set_file(array("error_body" => "error_body.tpl")); - $template->set_var(array("ERROR_MESSAGE" => $error_msg)); - $template->pparse("output", "error_body"); - include('includes/page_tail.'.$phpEx); - exit(); + $template->set_filenames(array("error_body" => "error_body.tpl")); + $template->assign_vars(array("ERROR_MESSAGE" => $error_msg)); + $template->pparse("error_body"); + include('includes/page_tail.'.$phpEx); + exit(); } - - + + ?> diff --git a/phpBB/functions/functions.php b/phpBB/functions/functions.php index 53e3cd8114..0e5341d2e6 100644 --- a/phpBB/functions/functions.php +++ b/phpBB/functions/functions.php @@ -117,4 +117,162 @@ function make_jumpbox($db) return($boxstring); } -?> +function language_select($default, $name="language", $dirname="language/") +{ + global $phpEx; + $dir = opendir($dirname); + $lang_select = "<select name=\"$name\">\n"; + while ($file = readdir($dir)) + { + if (ereg("^lang_", $file)) + { + $file = str_replace("lang_", "", $file); + $file = str_replace(".$phpEx", "", $file); + $file == $default ? $selected = " SELECTED" : $selected = ""; + $lang_select .= " <option$selected>$file\n"; + } + } + $lang_select .= "</select>\n"; + closedir($dir); + return $lang_select; +} + +function theme_select($default, $db) +{ + $sql = "SELECT theme_id, theme_name FROM ".THEMES_TABLE." ORDER BY theme_name"; + if($result = $db->sql_query($sql)) + { + $num = $db->sql_numrows($result); + $rowset = $db->sql_fetchrowset($result); + $theme_select = "<select name=\"theme\">\n"; + for($i = 0; $i < $num; $i++) + { + if((stripslashes($rowset[$i]["theme_name"]) == $default) || ($rowset[$i]["theme_id"] == $default)) + { + $selected = " SELECTED"; + } + else + { + $selected = ""; + } + $theme_select .= "\t<option value=\"".$rowset[$i]["theme_id"]."\"$selected>".stripslashes($rowset[$i]["theme_name"])."</option>\n"; + } + $theme_select .= "</select>\n"; + } + else + { + $theme_select = "<select name=\"theme\"><option value=\"-1\">Error in theme_select</option></select>"; + } + return($theme_select); +} + +function tz_select($default) +{ + global $board_tz; + if(!isset($default)) + { + $default == $board_tz; + } + $tz_select = "<select name=\"timezone\">"; + $tz_array = array( + "-12" => "(GMT -12:00 hours) Eniwetok, Kwajalein", + "-11" => "(GMT -11:00 hours) Midway Island, Samoa", + "-10" => "(GMT -10:00 hours) Hawaii", + "-9" => "(GMT -9:00 hours) Alaska", + "-8" => "(GMT -8:00 hours) Pacific Time (US & Canada)", + "-7" => "(GMT -7:00 hours) Mountain Time (US & Canada)", + "-6" => "(GMT -6:00 hours) Central Time (US & Canada), Mexico City", + "-5" => "(GMT -5:00 hours) Eastern Time (US & Canada), Bogota, Lima, Quito", + "-4" => "(GMT -4:00 hours) Atlantic Time (Canada), Caracas, La Paz", + "-3.5" => "(GMT -3:30 hours) Newfoundland", + "-3" => "(GMT -3:00 hours) Brazil, Buenos Aires, Georgetown", + "-2" => "(GMT -2:00 hours) Mid-Atlantic", + "-1" => "(GMT -1:00 hours) Azores, Cape Verde Islands", + "0" => "(GMT) Western Europe Time, London, Lisbon, Casablanca, Monrovia", + "+1" => "(GMT +1:00 hours) CET(Central Europe Time), Brussels, Copenhagen, Madrid, Paris", + "+2" => "(GMT +2:00 hours) EET(Eastern Europe Time), Kaliningrad, South Africa", + "+3" => "(GMT +3:00 hours) Baghdad, Kuwait, Riyadh, Moscow, St. Petersburg, Volgograd, Nairobi", + "+3.5" => "(GMT +3:30 hours) Tehran", + "+4" => "(GMT +4:00 hours) Abu Dhabi, Muscat, Baku, Tbilisi", + "+4.5" => "(GMT +4:30 hours) Kabul", + "+5" => "(GMT +5:00 hours) Ekaterinburg, Islamabad, Karachi, Tashkent", + "+5.5" => "(GMT +5:30 hours) Bombay, Calcutta, Madras, New Delhi", + "+6" => "(GMT +6:00 hours) Almaty, Dhaka, Colombo", + "+7" => "(GMT +7:00 hours) Bangkok, Hanoi, Jakarta", + "+8" => "(GMT +8:00 hours) Beijing, Perth, Singapore, Hong Kong, Chongqing, Urumqi, Taipei", + "+9" => "(GMT +9:00 hours) Tokyo, Seoul, Osaka, Sapporo, Yakutsk", + "+9.5" => "(GMT +9:30 hours) Adelaide, Darwin", + "+10" => "(GMT +10:00 hours) EAST(East Australian Standard), Guam, Papua New Guinea, Vladivostok", + "+11" => "(GMT +11:00 hours) Magadan, Solomon Islands, New Caledonia", + "+12" => "(GMT +12:00 hours) Auckland, Wellington, Fiji, Kamchatka, Marshall Island"); + + while(list($offset, $zone) = each($tz_array)) + { + if($offset == $default) + { + $selected = " SELECTED"; + } + else + { + $selected = ""; + } + $tz_select .= "\t<option value=\"$offset\"$selected>$zone</option>\n"; + } + $tz_select .= "</select>\n"; + return($tz_select); +} + +function validate_username(&$username, $db) +{ + $username = trim($username); + $username = strip_tags($username); + $username = htmlspecialchars($username); + if(empty($username)) + { + return(FALSE); + } + + $valid_name = TRUE; + $sql = "SELECT LOWER(username) FROM ".USERS_TABLE." WHERE username = '$username'"; + if($result = $db->sql_query($sql)) + { + if( ($numrows = $db->sql_numrows($result) ) > 0) + { + $valid_name = FALSE; + } + } + + $sql = "SELECT disallow_username FROM ".DISALLOW_TABLE." WHERE disallow_username = '$username'"; + if($result = $db->sql_query($sql)) + { + if(($numrows = $db->sql_numrows($result)) > 0) + { + $valid_name = FALSE; + } + } + + return($valid_name); +} +function generate_activation_key() +{ + $chars = array( + "a","A","b","B","c","C","d","D","e","E","f","F","g","G","h","H","i","I","j","J", + "k","K","l","L","m","M","n","N","o","O","p","P","q","Q","r","R","s","S","t","T", + "u","U","v","V","w","W","x","X","y","Y","z","Z","1","2","3","4","5","6","7","8", + "9","0" + ); + $max_elements = count($chars) - 1; + srand((double)microtime()*1000000); + $act_key = $chars[rand(0,$max_elements)]; + $act_key .= $chars[rand(0,$max_elements)]; + $act_key .= $chars[rand(0,$max_elements)]; + $act_key .= $chars[rand(0,$max_elements)]; + $act_key .= $chars[rand(0,$max_elements)]; + $act_key .= $chars[rand(0,$max_elements)]; + $act_key .= $chars[rand(0,$max_elements)]; + $act_key .= $chars[rand(0,$max_elements)]; + $act_key_md = md5($act_key); + + return($act_key_md); +} +?>
\ No newline at end of file |