rendered paste body<?php
/**
* Common Variables
*/
$CurrentTime = date("Y-m-d H:i:s");
$UserAgent = $_SERVER['HTTP_USER_AGENT'];
$UserIP = $_SERVER['REMOTE_ADDR'];
/**
* Login User
*/
if (isset($_POST['signin'])) {
$Username = PostClean(trim($_POST['username']));
$Password = PostClean(trim($_POST['password']));
$CheckUser = $DB->Query("SELECT id, password, salt, activated FROM users where username = '$Username' LIMIT 1");
$NumRows = $DB->NumRows($CheckUser);
if ($NumRows > 0) {
$CU = $DB->FetchArray($CheckUser);
$UserID = $CU['id'];
$StoredPassword = $CU['password'];
$Salt = $CU['salt'];
$UserActivated = $CU['activated'];
$HashedPassword = hash_hmac("sha512", $Password, $Salt);
if ($HashedPassword == $StoredPassword && $UserActivated) {
unset($_SESSION[$SessLoggedIn]);
unset($_SESSION[$SessUserID]);
unset($_SESSION[$LoginTime]);
unset($_SESSION[$SessIP]);
session_destroy();
$CheckGuestLogout = $DB->Query("SELECT login_time, last_active_time FROM user_track WHERE user_id = '0' AND logout_time = '' AND ip = '$UserIP'");
while ($CGL = $DB->FetchArray($CheckGuestLogout)) {
$LoginTime = $CGL['login_time'];
$LastActiveTime = $CGL['last_active_time'];
$DB->Query("UPDATE user_track SET logout_time = '$LastActiveTime' WHERE user_id = '0' AND login_time = '$LoginTime' AND ip = '$UserIP'");
}
$CheckUserLogout = $DB->Query("SELECT login_time, last_active_time FROM user_track WHERE user_id = '$UserID' AND logout_time = ''");
while ($CL = $DB->FetchArray($CheckLogout)) {
$LoginTime = $CL['login_time'];
$LastActiveTime = $CL['last_active_time'];
$DB->Query("UPDATE user_track SET logout_time = '$LastActiveTime' WHERE user_id = '$UserID' AND login_time = '$LoginTime'");
}
$sess = new SessionManager;
session_start();
$_SESSION[$SessLoggedIn] = true;
$_SESSION[$SessUserID] = $UserID;
$_SESSION[$SessLoginTime] = $CurrentTime;
$_SESSION[$SessIP] = $UserIP;
$UserTrack = $DB->Query("INSERT INTO user_track (user_id, login_time, last_active_time, user_agent, ip) VALUES ('$UserID', '$CurrentTime', '$CurrentTime', '$UserAgent', '$UserIP')");
if (isset($_POST['remember'])) {
$Token = md5(uniqid(microtime()));
$CurrentUserAgent = "";
foreach ($Browsers as $Name => $Value) {
if ($Value && !$CurrentUserAgent) {
!$CurrentUserAgent = $Name;
}
}
setcookie($SessUserID, $UserID, time()+60*60*24*100, "/");
setcookie($SessUserID . "_token", $Token, time()+60*60*24*100, "/");
$DB->Query("INSERT INTO cookies (user_id, token, user_agent) VALUES ($UserID, $Token, $CurrentUserAgent)");
}
header("Location: member.php");
}
}
}
/**
* Check If Valid Cookie Is Set
*/
if (isset($_COOKIE[$SessUserID]) && isset($_COOKIE[$SessUserID . "_token"]) && !isset($_SESSION[$SessLoggedIn]) && !isset($_SESSION[$SessUserID]) && !isset($_SESSION[$SessLoginTime]) && !isset($_SESSION[$SessIP])) {
$UserID = $_COOKIE[$SessUserID];
$Token = $_COOKIE[$SessUserID . "_token"];
$CheckCookie = $DB->Query("SELECT user_agent FROM cookies WHERE user_id = '$UserID' AND token = '' LIMIT 1");
$NumRows = $DB->NumRows($CheckCookie);
$CC = $DB->FetchArray($CheckCookie);
$Agent = $CC['user_agent'];
if ($NumRows > 0 && $Browsers[$Agent]) {
$CheckAccount = $DB->Query("SELECT activated FROM users WHERE id = '$UserID' LIMIT 1");
$NumRows = $DB->NumRows($CheckAccount);
$CA = $DB->FetchArray($CheckAccount);
$UserActivated = $CA['activated'];
if ($NumRows > 0 && $UserActivated > 0) {
$CheckGuestLogout = $DB->Query("SELECT login_time, last_active_time FROM user_track WHERE user_id = '0' AND logout_time = '' AND ip = '$UserIP'");
while ($CGL = $DB->FetchArray($CheckGuestLogout)) {
$LoginTime = $CGL['login_time'];
$LastActiveTime = $CGL['last_active_time'];
$DB->Query("UPDATE user_track SET logout_time = '$LastActiveTime' WHERE user_id = '0' AND login_time = '$LoginTime' AND ip = '$UserIP'");
}
$CheckUserLogout = $DB->Query("SELECT login_time, last_active_time FROM user_track WHERE user_id = '$UserID' AND logout_time = ''");
while ($CL = $DB->FetchArray($CheckLogout)) {
$LoginTime = $CL['login_time'];
$LastActiveTime = $CL['last_active_time'];
$DB->Query("UPDATE user_track SET logout_time = '$LastActiveTime' WHERE user_id = '$UserID' AND login_time = '$LoginTime'");
}
$_SESSION[$SessLoggedIn] = true;
$_SESSION[$SessUserID] = $UserID;
$_SESSION[$SessLoginTime] = $CurrentTime;
$_SESSION[$SessIP] = $UserIP;
$UserTrack = $DB->Query("INSERT INTO user_track (user_id, login_time, last_active_time, user_agent, ip) VALUES ('$UserID', '$CurrentTime', '$CurrentTime', '$UserAgent', '$UserIP')");
if (isset($_POST['remember'])) {
header("Location: member.php");
}
else {
setcookie($SessUserID, "", time()-60*60*24*100, "/");
setcookie($SessUserID . "_token", "", time()-60*60*24*100, "/");
header("Location: index.php");
}
}
}
/**
* Login User As A Guest
*/
if (!isset($_SESSION[$SessLoggedIn]) && !isset($_SESSION[$SessUserID]) && !isset($_SESSION[$SessLoginTime]) && !isset($_SESSION[$SessIP])) {
$_SESSION[$SessLoggedIn] = false;
$_SESSION[$SessUserID] = 0;
$CheckGuestLogout = $DB->Query("SELECT login_time, last_active_time FROM user_track WHERE user_id = '0' AND logout_time = '' AND ip = '$UserIP'");
while ($CGL = $DB->FetchArray($CheckGuestLogout)) {
$LoginTime = $CGL['login_time'];
$LastActiveTime = $CGL['last_active_time'];
$DB->Query("UPDATE user_track SET logout_time = '$LastActiveTime' WHERE user_id = '0' AND login_time = '$LoginTime' AND ip = '$UserIP'");
}
$_SESSION[$SessLoginTime] = $CurrentTime;
$_SESSION[$SessIP] = $UserIP;
$UserTrack = $DB->Query("INSERT INTO user_track (user_id, login_time, last_active_time, user_agent, ip) VALUES ('0', '$CurrentTime', '$CurrentTime', '$UserAgent', '$UserIP')");
}
/**
* Update User Tracking Information
*/
if (isset($_SESSION[$SessLoggedIn]) &&isset($_SESSION[$SessUserID]) && isset($_SESSION[$SessLoginTime]) && isset($_SESSION[$SessIP])) {
$UserID = $_SESSION['$SessUserID'];
$LoginTime = $_SESSION[$SessLoginTime];
$IP = $_SESSION[$SessIP];
$DB->Query("UPDATE user_track SET last_active_time = '$CurrentTime' WHERE user_id = '$UserID' AND login_time = '$LoginTime' AND ip = '$IP'");
}
/**
* Logout User
*/
if (isset($_GET['signout'])) {
setcookie($SessUserID, "", time()-60*60*24*100, "/");
$UserID = $_SESSION[$SessUserID];
$LoginTime = $_SESSION[$SessLoginTime];
$IP = $_SESSION[$SessIP];
$DB->Query("UPDATE user_track SET logout_time = '$CurrentTime' WHERE user_id = '$UserID' AND login_time = '$LoginTime' AND ip = '$IP'");
unset($_SESSION[$SessLoggedIn]);
unset($_SESSION[$SessUserID]);
unset($_SESSION[$LoginTime]);
unset($_SESSION[$SessIP]);
session_destroy();
header("Location: index.php");
}
?>