define('IN_EBB', true);
/*
Filename: login.php
Last Modified: 12/20/2005
Term of Use:
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
*/
include "config.php";
require "header.php";
$page = new template($template_path ."/header.htm");
$page->replace_tags(array(
"TITLE" => "$title",
"PAGETITLE" => "$login[login]",
"BGCOLOR" => "$bg_color",
"TEXTCOLOR" => "$text_color",
"LINKCOLOR" => "$link",
"VLINKCOLOR" => "$vlink",
"FONTFACE" => "$font"));
$page->output();
//check to see if the install file is stil on the user's server.
if (file_exists("install.php")){
if ($stat == "Admin"){
$error = $txt['installadmin'];
echo error($error, "error");
}
else{
$error = $txt['install'];
echo error($error, "general");
}
}
//check to see if this user is able to access this board.
echo check_ban();
//check to see if the board is on or off.
if ($board_status == "Off"){
$error = $off_msg;
echo error($error, "general");
if ($stat == "Admin"){
echo "
$menu[cp]";
}
exit();
}
//output top
if ($stat == "Admin"){
$page = new template($template_path ."/top-admin.htm");
$page->replace_tags(array(
"TITLE" => "$title",
"LANG-WELCOME" => "$txt[welcome]",
"LOGGEDUSER" => "$logged_user",
"LANG-LOGOUT" => "$txt[logout]",
"LANG-IM" => "$menu[launchim]",
"LANG-CP" => "$menu[cp]",
"TABLE1" => "$table1",
"ADDRESS" => "$address",
"LANG-HOME" => "$menu[home]",
"LANG-SEARCH" => "$menu[search]",
"LANG-FAQ" => "$menu[faq]",
"LANG-MEMBERLIST" => "$menu[members]",
"LANG-PROFILE" => "$menu[profile]"));
$page->output();
//check to see if user is marked as online, if not mark them as online.
$time = time();
$db->run = "select * from ebb_online where Username='$logged_user'";
$count_member = $db->num_results();
$db->close();
if ($count_member == 0){
//user seems to be just getting on.
$db->run = "insert into ebb_online (Username, time, location) values('$logged_user', '$time', '$_SERVER[PHP_SELF]')";
$db->query();
$db->close();
}
else{
//user is still here so lets up their time to let the script know the user is still around.
$db->run = "update ebb_online Set time='$time', location='$_SERVER[PHP_SELF]' where Username='$logged_user'";
$db->query();
$db->close();
}
}
if (($stat == "Member") OR ($stat == "Moderator")){
$page = new template($template_path ."/top-logged.htm");
$page->replace_tags(array(
"TITLE" => "$title",
"LANG-WELCOME" => "$txt[welcome]",
"LOGGEDUSER" => "$logged_user",
"LANG-LOGOUT" => "$txt[logout]",
"LANG-IM" => "$menu[launchim]",
"TABLE1" => "$table1",
"ADDRESS" => "$address",
"LANG-HOME" => "$menu[home]",
"LANG-SEARCH" => "$menu[search]",
"LANG-FAQ" => "$menu[faq]",
"LANG-MEMBERLIST" => "$menu[members]",
"LANG-PROFILE" => "$menu[profile]"));
$page->output();
//check to see if user is marked as online, if not mark them as online.
$time = time();
$db->run = "select * from ebb_online where Username='$logged_user'";
$count_member = $db->num_results();
$db->close();
if ($count_member == 0){
//user seems to be just getting on.
$db->run = "insert into ebb_online (Username, time, location) values('$logged_user', '$time', '$_SERVER[PHP_SELF]')";
$db->query();
$db->close();
}
else{
//user is still here so lets up their time to let the script know the user is still around.
$db->run = "update ebb_online Set time='$time', location='$_SERVER[PHP_SELF]' where Username='$logged_user'";
$db->query();
$db->close();
}
}
if ($stat == "guest"){
$page = new template($template_path ."/top-guest.htm");
$page->replace_tags(array(
"TITLE" => "$title",
"LANG-WELCOME" => "$txt[welcomeguest]",
"LANG-LOGIN" => "$txt[login]",
"LANG-REGISTER" => "$txt[register]",
"TABLE1" => "$table1",
"ADDRESS" => "$address",
"LANG-HOME" => "$menu[home]",
"LANG-SEARCH" => "$menu[search]",
"LANG-FAQ" => "$menu[faq]",
"LANG-MEMBERLIST" => "$menu[members]"));
$page->output();
//check to see if guest is marked as online, if not mark them as online.
$time = time();
$ip = $_SERVER["REMOTE_ADDR"];
$db->run = "select * from ebb_online where ip='$ip'";
$count_guest = $db->num_results();
$db->close();
if ($count_guest == 0){
$db->run = "insert into ebb_online (ip, time, location) values('$ip', '$time', '$_SERVER[PHP_SELF]')";
$db->query();
$db->close();
}
else{
//user is still here so lets up their time to let the script know the user is still around.
$db->run = "update ebb_online Set time='$time', location='$_SERVER[PHP_SELF]' where ip='$ip'";
$db->query();
$db->close();
}
}
//display login system
if ($stat !== "guest"){
header("Location: index.php");
}
switch ($_GET['mode']){
case 'lostpassword':
$page = new template($template_path ."/lostpassword.htm");
$page->replace_tags(array(
"TITLE" => "$title",
"LANG-TITLE" => "$login[passwordrecovery]",
"BORDER" => "$border",
"TABLE1" => "$table1",
"TABLE2" => "$table2",
"LANG-USERNAME" => "$txt[username]",
"LANG-REGISTER" => "$login[reg]",
"LANG-EMAIL" => "$form[email]",
"LANG-GETPASS" => "$userinfo[getpass]"));
$page->output();
break;
case 'process_lostpassword':
$lost_user = $_POST['lost_user'];
$lost_email = $_POST['lost_email'];
$random_password = makeRandomPassword();
$db->run = "SELECT * FROM ebb_users WHERE Username='$lost_user'";
$email_r = $db->result();
$db->close();
$email = $email_r['Email'];
//see if the email matches the one on record.
if ($lost_email !== $email['Email']){
$error = $userinfo['noemailmatch'];
echo error($error, "error");
}else{
$db->run = "UPDATE ebb_users SET Password='$random_password' WHERE Username='$lost_user'";
$db->query();
$db->close();
}
$head = "From: $title <$board_email>";
require "lang/".$lang.".email.php";
//get ready to send mail.
@mail ($email, $lost_subject, $lost_message, $head);
$error = $userinfo['emailsent'];
echo error($error, "general");
break;
default:
if (!isset($_COOKIE['ebbuser'])){
$redirect = $_SERVER['HTTP_REFERER'];
$page = new template($template_path ."/login.htm");
$page->replace_tags(array(
"TITLE" => "$title",
"LANG-TITLE" => "$login[login]",
"BORDER" => "$border",
"TABLE1" => "$table1",
"TABLE2" => "$table2",
"TEXT" => "$login[text]",
"LANG-USERNAME" => "$txt[username]",
"LANG-REGISTER" => "$login[reg]",
"LANG-PASSWORD" => "$login[pass]",
"LANG-FORGOT" => "$login[forgot]",
"LANG-LOGIN" => "$login[login]",
"PATH-REDIRECT" => "$redirect"));
$page->output();
}
else{
$error = $login['alreadylogged'];
echo error($error, "error");
}
}
//display footer
$page = new template($template_path ."/footer.htm");
$page->replace_tags(array(
"LANG-POWERED" => "$index[poweredby]"));
$page->output();
ob_end_flush();
?>