Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- class SessionManager {
- private static $cookie_name = "hrphpsession";
- private static $file = "data/session.json";
- private static $expire = array("default" => 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;
- }
- }
- ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement