Advertisement
benshepherd

/r/badcode

Mar 23rd, 2018
1,940
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.50 KB | None | 0 0
  1. <?php
  2.     class SessionManager {
  3.        
  4.         private static $cookie_name = "hrphpsession";
  5.         private static $file = "data/session.json";
  6.         private static $expire = array("default" => 86400, "remember" => 2592000);
  7.         public static $valid;
  8.        
  9.         public static function Init() {
  10.             self::$valid = self::Check();  
  11.         }
  12.        
  13.         public static function Set($remember) {
  14.            
  15.             $data = array(
  16.                 "hash" => md5(rand().uniqid()),
  17.                 "IP" => $_SERVER['REMOTE_ADDR'],
  18.                 "timestamp" => time(),
  19.                 "remember" => ($remember ? 1 : 0)
  20.             );
  21.            
  22.             $fw = fopen(self::$file,"w");
  23.             fwrite($fw,json_encode($data));
  24.             fclose($fw);
  25.            
  26.             setcookie(self::$cookie_name,$data["hash"],time()+($remember ? self::$expire["remember"] : self::$expire["default"]));
  27.            
  28.         }
  29.        
  30.         public static function Destroy() {
  31.            
  32.             setcookie(self::$cookie_name,time()-self::$expire["remember"]);
  33.             unlink(self::$file);
  34.            
  35.         }
  36.        
  37.         public static function Check() {
  38.            
  39.             if(file_exists(self::$file) && isset($_COOKIE[self::$cookie_name])) {
  40.                
  41.                 try {
  42.                    
  43.                     $data = json_decode(file_get_contents(self::$file), true);
  44.                    
  45.                     return
  46.                     (($data["remember"]==1 && time() < $data["timestamp"]+self::$expire["remember"]) ||
  47.                     ($data["remember"]==0 && time() < $data["timestamp"]+self::$expire["default"]) &&
  48.                     $data["IP"] == $_SERVER['REMOTE_ADDR'] &&
  49.                     $data["hash"] == $_COOKIE[self::$cookie_name]);
  50.                
  51.                 }
  52.                 catch (Exception $e) {
  53.                     /* Do nothing */   
  54.                 }
  55.             }
  56.            
  57.             return false;
  58.         }
  59.     }
  60. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement