ACC SHELL
<?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