All pastes #640908 Raw Edit

Anonymous

public text v1 · immutable
#640908 ·published 2007-07-31 19:54 UTC
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");
	}

?>