Jump to content

values not getting set...


blueman378

Recommended Posts

Hi guys.

 

im working on rewriting a script.

 

anyway heres the page im having problems with:

 

<?php
//---------------------
//SESSION.PHP
//---------------------
//this file is designed to control user interaction with the site.
//it is advised that you do not modify this file as you will stop the site working.
//---------------------

//---------------------
//AUTHOR DETAILS
//---------------------
//AUTHOR: 			NZ Evox
//AUTHOR EMAIL:		[email protected]
//SUPPORT:			http://www.baf.com
//FORUM THEMES:		http://www.baf.com/themes/
//FORUM MODS:		http://www.baf.com/mods/
//---------------------

//---------------------
//SCRIPT DETAILS
//---------------------
//MAJOR:			001
//MINOR:			.0.0.0
//COMPLETE:			1.0.0.0
//LAST UPDATE:		November 2008
//---------------------


//---------------------
//INCLUDES
//---------------------
//these are the other scripts needed to run the site
//---------------------
include("database.php");
include("form.php");
//---------------------


class session
{
var $username;     								//Username given on sign-up
var $userid;       								//Userid stored in the database
var $usercookiekey;								// the value stored in the users cookie
var $userlevel;    								//The level to which the user pertains
var $time;         								//Time user was last active (page loaded)
var $logged_in;    								//True if user is logged in, false otherwise
var $userhidden;    								//True if user is logged in, false otherwise
var $userinfo = array();  						//The array holding all user info
var $url;          								//The page url current being viewed
var $referrer;     								//Last recorded site page viewed

function session()
{
	$this->sessionstart();
}

function sessionstart()
{
	session_start();
	global $database;
	$this->logged_in = $this->checkLogin();
	if(!$this->logged_in)
	{
		$database->addActiveGuest($_SERVER['REMOTE_ADDR']);
	}
	else
	{
		if($this->userhidden == 1)
		{
			$database->addHiddenUser($this->userid);
		}
		else
		{
			$database->addActiveUser($this->userid);
		}
	}
}

function checkLogin()
{
    	global $database;
    	if(isset($_COOKIE['cookuserid']) && isset($_COOKIE['cookkey']))
	{
		$this->userinfo  		= $database->getUserInfo($_COOKIE['cookuserid']);
		$this->username  		= $this->userinfo['username'];
        	$this->userid 			= $_SESSION['userid'] 		= $_COOKIE['cookuserid'];
        	$this->usercookiekey	= $_SESSION['usercookiekey']	= $_COOKIE['cookkey'];
        	$this->userlevel 		= $_SESSION['userlevel'] 		= $this->userinfo[user_level];
        	$this->userhidden 		= $_SESSION['userhidden'] 		= $this->userinfo[user_hidden];
        	
    	}
    	if(isset($_SESSION['userid']) 
	&& isset($_SESSION['usercookiekey']) 
	&& isset($_SESSION['userlevel']) 
	&& $_SESSION['userlevel'] != 0)
	{
		if($database->confirmUserID($_SESSION['userid'], $_SESSION['usercookiekey']) != 0)
		{
			unset($_SESSION['username']);
			unset($_SESSION['userid']);
			unset($_SESSION['userlevel']);
			return false;
		}
		$this->userinfo  		= $database->getUserInfo($_SESSION['userid']);
		$this->username  		= $this->userinfo['username'];
		$this->userid    		= $this->userinfo['user_id'];
		$this->userlevel 		= $this->userinfo['user_level'];
		$this->usercookiekey 	= $this->userinfo['user_cookiekey'];
		return true;
    	}
    	else
	{
        	return false;
    	}
}

function generateRandID()
{
    	return md5($this->generateRandStr(16));
    }

    function generateRandStr($length)
{
    	$randstr = "";
    	for($i=0; $i<$length; $i++)
	{
        	$randnum = mt_rand(0,61);
        	if($randnum < 10)
		{
            	$randstr .= chr($randnum+48);
         	}
		else if($randnum < 36)
		{
            	$randstr .= chr($randnum+55);
         	}
	 	else
		{
            	$randstr .= chr($randnum+61);
         	}
	}
return $randstr;
}

function login($subuser, $subpass, $subremember, $subhidden)
{
    	global $database, $form;
	//---------------------
	//USERNAME ERROR CHECKING
	//---------------------
	$field = "username";
	//---------------------
	//CHECK IF USERNAME IS EMPTY
	//---------------------
	if(!$subuser || strlen($subuser = trim($subuser)) == 0)
	{
        	$form->setError($field, "* Username not entered<br>");
      	}
      	//---------------------
	//CHECK IF USERNAME IS ALPHANUMERIC AND UNDERSCORE
	//---------------------
      	else
	{
        	if(!eregi("^([0-9a-z_])*$", $subuser))
		{
        		$form->setError($field, "* Username not alphanumeric");
         	}
        }
    	//---------------------
    	//PASSWORD ERROR CHECKING
    	//---------------------
    	$field = "password";
        //---------------------
      	//CHECK IF PASSWORD IS EMPTY
      	//---------------------
      	if(!$subpass || strlen($subpass = trim($subpass)) == 0)
	{
        	$form->setError($field, "* Password not entered<br>");
      	}
      	//---------------------
    	//ERRORS EXIST GET USER TO CORRECT THEM
    	//---------------------
      	if($form->num_errors > 0)
	{
        	return 1; 
      	}
	//---------------------
      	//CHECK IF USERNAME IN DATABASE AND IF PASSWORD CORRECT
      	//---------------------
	$subuser = stripslashes($subuser);
	$result = $database->confirmUserPass($subuser, md5($subpass));
	//---------------------
      	//CHECK ERROR CODES
      	//---------------------
	if($result == 1)
	{
		$field = "username";
		$form->setError($field, "* Username not found<br>");
	}
	else if($result == 2)
	{
		$field = "password";
		$form->setError($field, "* Incorrect password<br>");
	}
	//---------------------
    	//ERRORS EXIST GET USER TO CORRECT THEM
    	//---------------------
      	if($form->num_errors > 0)
	{
        	return 1; 
      	}
    	//---------------------
    	//NO ERRORS LOGIN USER
    	//---------------------
    	$this->userinfo  		= $database->getUserInfoUsername($subuser);
	$this->username  		= $_SESSION['username'] 	= $this->userinfo['username'];
	$this->userid    		= $_SESSION['userid']   	= $this->userinfo['user_id'];
	$this->userlevel 		= $_SESSION['userlevel'] 	= $this->userinfo['user_level'];
	$this->usercookiekey 	= $_SESSION['usercookiekey'] 	= $this->generateRandID();
	$database->updateUserField($this->userid, "user_cookiekey", $this->usercookiekey);
	if($subhidden == "on")
	{
		$database->updateUserField($this->userid, "user_hidden", 1);
		$this->userhidden 		= $_SESSION['userhidden'] 	= 1;
		$database->addHiddenUser($this->userid);

	}
	else
	{
		$database->addActiveUser($this->userid);
	}
	if($subremember)
	{
		setcookie("cookuserid", $this->userid, time()+COOKIE_EXPIRE, COOKIE_PATH);
		setcookie("cookkey",   $this->usercookiekey,   time()+COOKIE_EXPIRE, COOKIE_PATH);
      	}
      	return true;  																	//user logged in
}

function logout()
{
    	global $database;
    	if(isset($_COOKIE['cookuserid']) && isset($_COOKIE['cookkey']))
	{
        	setcookie("cookuserid", "", time()-3600, COOKIE_PATH);
        	setcookie("cookkey",   "", time()-3600, COOKIE_PATH);
    	}

      /* Unset PHP session variables */
      unset($_SESSION['usercookiekey']);
      unset($_SESSION['userid']);

      /* Reflect fact that user has logged out */
      $this->logged_in = false;
      
      /**
       * Remove from active users table and add to
       * active guests tables.
       */
      $database->removeActiveUser($this->userid);
      $database->addActiveGuest($_SERVER['REMOTE_ADDR'], Time());
      
      /* Set user level to guest */
      $this->username  = "";
      $this->userlevel = "";
   }
}

//---------------------
//INITIALIZE THE CLASSES
//---------------------
$session = new session;
$form = new form;
//---------------------

?>

 

specifically the problem is that the variable (and session) userhidden/user_hidden are not getting set they are meant to be set here:

 

 

<?php
    	//---------------------
    	//NO ERRORS LOGIN USER
    	//---------------------
    	$this->userinfo  		= $database->getUserInfoUsername($subuser);
	$this->username  		= $_SESSION['username'] 	= $this->userinfo['username'];
	$this->userid    		= $_SESSION['userid']   	= $this->userinfo['user_id'];
	$this->userlevel 		= $_SESSION['userlevel'] 	= $this->userinfo['user_level'];
	$this->usercookiekey 	= $_SESSION['usercookiekey'] 	= $this->generateRandID();
	$database->updateUserField($this->userid, "user_cookiekey", $this->usercookiekey);
	if($subhidden == "on")
	{
		$database->updateUserField($this->userid, "user_hidden", 1);
		$this->userhidden 		= $_SESSION['userhidden'] 	= 1;
		$database->addHiddenUser($this->userid);

	}
	else
	{
		$database->addActiveUser($this->userid);
	}
?>

i know subhidden is on (echoed stuff there to test)

the rest of the variables are getting set and even the database details are getting updated yet the session and variable are not getting set, any ideas why?

 

 

Link to comment
https://forums.phpfreaks.com/topic/134735-values-not-getting-set/
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.