Не иска да излиза от сесията

cnoko

Registered
Още малко ще се откажа и със SQL заявка ще си правя сесииите.
Първо си направих сам файлова сесия, но ми изпизваше, че файла не може да се изтрие O.o
Код:
class session
{
var $sid;
var $ttl;
var $autologin;
	function session()
	{
		global $_SESSION, $_COOKIE, $_POST, $_GET, $db;
		$this->sid = request_var('sid', false, true);
		$this->autologin = request_var('remember', false, true);
		session_name('sid');
		//session_save_path(realpath(ROOT_PATH . 'sessions/'));
		session_cache_limiter((($this->autologin) ? 'private_no_expire' : 'private'));
		if (preg_match('/^[a-zA-Z0-9\-]++$/', $this->sid))
		{
			session_id($this->sid);
		}
		session_start();
		if (!isset($_SESSION['user_id']))
		{
			$this->create(GUEST);

		}
	else if ($_SESSION['user_id'] != GUEST)
		{
			$result = $db->query('UPDATE ' . USERS_TABLE . ' SET user_last_visit = ' . time() . ', user_ip = ' . get_formatted_ip() . ' WHERE user_id = ' . $_SESSION['user_id'] . ' LIMIT 1');
			$_SESSION['user_last_visit'] = time();
			$this->ttl = session_cache_expire();
		}
	else
		{
			$this->ttl = session_cache_expire();
		}
	}
	
	function gen_session_id()
	{
		session_regenerate_id(true);
	}
	
	function save()
	{
		global $_SESSION;
		if ($this->sid)
		{
			session_write_close();
		}
	}
	
	function create($user_id, $auto_login = false)
	{
		global $_SESSION, $db, $cache;
		$this->autologin = $autologin;
		$result = $db->query('SELECT * FROM ' . USERS_TABLE . ' WHERE user_id = ' . $user_id . ' LIMIT 1');
		$row = $db->fetchrow($result);
		$db->freeresult($result);
		if (!$row)
		{
			if ($user_id != GUEST)
			{
				$result = $db->query('SELECT * FROM ' . USERS_TABLE . ' WHERE user_id = ' . GUEST . ' LIMIT 1');
				$row = $db->fetchrow($result);
				$db->freeresult($result);
				if (!$row)
				{
					trigger_error('Warning select guest user');
				}
			}
		}
		if ($_SESSION['user_id'] && $_SESSION['user_id'] != GUEST)
		{
			$result = $db->query('UPDATE ' . USERS_TABLE . ' SET user_last_visit = ' . time() . ', user_ip = ' . get_formatted_ip($_SERVER['REMOTE_ADDR']) . ' WHERE user_id = ' . $_SESSION['user_id'] . ' LIMIT 1');
			$_SESSION['user_last_visit'] = time();
		}
		$this->ttl = ($this->auto_login) ? 4730400000 : 648000;
		set_cookie('remember', intval($this->autologin), time()+$this->ttl);
		$this->sid = session_id();
		set_cookie('sid', $this->sid, time()+$this->ttl);

	
		$_SESSION = $row;
		return true;
	}
	
	function destroy()
	{
		set_cookie('sid', '', -1);
		set_cookie('remember', '', -1);
		session_destroy();
	}
}
По едно време работеше сега се развали ?
 

Back
Горе