1
0
mirror of https://github.com/phpbb/phpbb.git synced 2025-08-03 15:27:42 +02:00

User registration works.

git-svn-id: file:///svn/phpbb/trunk@106 89ea8834-ac86-4346-8a33-228a782c2dd0
This commit is contained in:
James Atkinson
2001-03-19 01:35:04 +00:00
parent 40f1f172a8
commit 9eff772508
14 changed files with 822 additions and 202 deletions

View File

@@ -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);
}
}
?>

View File

@@ -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"))
{
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;
if(!empty($default_lang))
{
include('language/lang_'.$default_lang.'.'.$phpEx);
}
else
{
include('language/lang_english.'.$phpEx);
}
include('includes/page_header.'.$phpEx);
}
}
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();
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)
{
//$error_msg .= "<br>Line number: ".__LINE__."<br>In File: ".__FILE__;
}
$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();
}
?>

View File

@@ -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);
}
?>