ACC SHELL

Path : /proc/self/root/srv/www/vhosts/alfa-com/engine/
File Upload :
Current File : //proc/self/root/srv/www/vhosts/alfa-com/engine/Session.php

<?php
	// Author: Jakub Macek, CZ; Copyright: Poski.com s.r.o.; Code is 100% my work. Do not copy.
	
	class SessionObject
	{
		public 				$class							= '';
		public 				$serialized						= '';

		public function __construct($object)
		{
			$this->class = get_class($object);
			$this->serialized = serialize($object);
		}
	}

	class Session
	{
		public static		$oid_ip							= '';
		public static		$oid_hash						= '';

		public static function oid($prefix)
		{
			$result = /*'-' . self::$oid_ip . */'-' . $prefix;
			return U::randomString(1, 'abcdefghijklmnopqrstuvwxyz') . U::randomString(15) . $result;
			//return substr(md5(self::$oid_hash . microtime() . mt_rand(0, 1073741824)), 0, (64 - strlen($result))) . $result;
			/*$result = $prefix . '-' . self::$oid_ip . '-' . md5(self::$oid_hash . microtime() . mt_rand(0, 1073741824));
			return substr($result, 0, 64);*/
		}

		public static function get($key, $value = null)
		{
			if (isset($_SESSION[$key]))
				return (($_SESSION[$key] instanceof SessionObject) ? unserialize($_SESSION[$key]->serialized) : $_SESSION[$key]);
			else
				return $value;
		}

		public static function set($key, $value)
		{
			if (is_array($key) || ($key === null) || is_bool($key))
				foreach ($value as $k => $v)
					$this->set($k, $v);
			if (($value === null) && isset($_SESSION[$key]))
				unset($_SESSION[$key]);
			else if ($value !== null)
			{
				if (is_object($value))
					$_SESSION[$key] = new SessionObject($value);
				else
					$_SESSION[$key] = $value;
			}
		}

		public static function initialize()
		{
			session_start();

			self::$oid_ip = '';
			/*if (isset($_SERVER['SERVER_ADDR']) && (count($temp = explode('.', $_SERVER['SERVER_ADDR'])) == 4))
				self::$oid_ip .= dechex($temp[0]) . dechex($temp[1]) . dechex($temp[2]) . dechex($temp[3]) . '-';
			else
				self::$oid_ip .= '00000000-';*/
			if (isset($_SERVER['REMOTE_ADDR']) && (count($temp = explode('.', $_SERVER['REMOTE_ADDR'])) == 4))
				self::$oid_ip .= dechex($temp[0]) . dechex($temp[1]) . dechex($temp[2]) . dechex($temp[3]);
			else
				self::$oid_ip .= '00000000';

			self::$oid_hash .= (isset($_SERVER['SERVER_NAME']) ? $_SERVER['SERVER_NAME'] : '') . (isset($_SERVER['REMOTE_NAME']) ? $_SERVER['REMOTE_NAME'] : '') . session_id();

			if (in_array(Session::get('locale'), site()->locales))
				Session::set('locale', site()->localeDefault);
		}
		
		public static function dumpShort()
		{
			$temp = $_SESSION;
			unset($temp['viewstate']);
			unset($temp['history']);
			dump($temp);
		}
	}
?>

ACC SHELL 2018