86400, "remember" => 2592000); public static $valid; public static function Init() { self::$valid = self::Check(); } public static function Set($remember) { $data = array( "hash" => md5(rand().uniqid()), "IP" => $_SERVER['REMOTE_ADDR'], "timestamp" => time(), "remember" => ($remember ? 1 : 0) ); $fw = fopen(self::$file,"w"); fwrite($fw,json_encode($data)); fclose($fw); setcookie(self::$cookie_name,$data["hash"],time()+($remember ? self::$expire["remember"] : self::$expire["default"])); } public static function Destroy() { setcookie(self::$cookie_name,time()-self::$expire["remember"]); unlink(self::$file); } public static function Check() { if(file_exists(self::$file) && isset($_COOKIE[self::$cookie_name])) { try { $data = json_decode(file_get_contents(self::$file), true); return (($data["remember"]==1 && time() < $data["timestamp"]+self::$expire["remember"]) || ($data["remember"]==0 && time() < $data["timestamp"]+self::$expire["default"]) && $data["IP"] == $_SERVER['REMOTE_ADDR'] && $data["hash"] == $_COOKIE[self::$cookie_name]); } catch (Exception $e) { /* Do nothing */ } } return false; } } ?>