ACC SHELL
<?php
/**
* Description of Ses
*
* @author Melounek
*/
class Ses {
/*
* this is just prepared... not used jet
*
public static $db_host = DB_HOST;
public static $db_user = DB_USER;
public static $db_pass = DB_PASS;
public static $db_db = DB_DB;
*/
public static $prefix = "x";
public static $path = "/";
public static function user($item,$value = false){
$time = time() + 60*60*24*100;
$cook = self::cook2array(self::$prefix);
if(is_array($item)){
if(empty($item)){
Tools::log("Ses::session() tried to save empty array!",3);
return false;
}
foreach($item as $i=>$d){
$cook[$i] = $d;
}
Tools::log("Ses::session() saved array of variables: ".var_export($item,1)." \n\nIn Cookie:\n".self::array2cook($cook),4);
setcookie (self::$prefix, self::array2cook($cook), $time, self::$path );
}elseif($item && $value!==false){
$cook[$item] = $value;
Tools::log("Ses::session() saved variable: ".$item."=>".$value." \n\nIn Cookie:\n".self::array2cook($cook),4);
setcookie (self::$prefix, self::array2cook($cook) , $time, self::$path );
}elseif($item){
if(isset($cook[$item])){
// nejde logovat (kvůli zacyklení)
return $cook[$item];
}else
return false;
}
return true;
}
public static function user_array(){
$data = self::cook2array(self::$prefix);
if(empty($data['id'])){
Tools::log("Ses::session_array() returns data: " . var_export($data,1));
}else{
Tools::log("Ses::session_array() returns user from DB id= ".$data['id']." login=".$data['login']);
}
return $data;
}
public static function user_destroy(){
Tools::log("Ses::session_destroy() destroyed user data (logout)");
setcookie (self::$prefix, "" , time()-60, self::$path );
}
// library
private static function cook2array($prefix){
// nelogovat!
if(!isset($_COOKIE[$prefix])){
return array();
}
$dvojice = explode("##",$_COOKIE[$prefix]);
$result = array();
foreach($dvojice as $d){
$e = explode("&&",$d);
$result[$e[0]] = $e[1];
}
return $result;
}
private static function array2cook($cook){
$result = "";
foreach($cook as $i=>$d){
if($result) $result.="##";
$result.= $i."&&".$d;
}
return $result;
}
}
?>
ACC SHELL 2018