Advertisement
fabi0

Untitled

May 15th, 2014
258
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.76 KB | None | 0 0
  1. <?php
  2.  
  3. /*
  4.  * To change this license header, choose License Headers in Project Properties.
  5.  * To change this template file, choose Tools | Templates
  6.  * and open the template in the editor.
  7.  */
  8.  
  9. /**
  10.  * Description of Session
  11.  *
  12.  * @author fabi0
  13.  */
  14.  
  15. namespace Models;
  16.  
  17. class Session {
  18.  
  19.     private function __construct() {
  20.        
  21.     }
  22.  
  23.     public static function exists($name) {
  24.         $database = DB::getInstance();
  25.         $params = array(
  26.             ':name' => array(
  27.                 'param' => $name,
  28.                 'type' => 1
  29.             )
  30.         );
  31.         $sql = 'SELECT session_id FROM sessions WHERE session_name=:name;';
  32.         $database->query($sql, $params);
  33.         if ($database->getCount()) {
  34.             return TRUE;
  35.         } else {
  36.             return FALSE;
  37.         }
  38.     }
  39.  
  40.     public static function set($name, $value) {
  41.         return $_SESSION[$name] = $value;
  42.     }
  43.  
  44.     public static function get($name) {
  45.  
  46.         $database = DB::getInstance();
  47.         $params = array(
  48.             ':name' => array(
  49.                 'param' => $name,
  50.                 'type' => 2
  51.             )
  52.         );
  53.         $sql = 'SELECT session_object FROM sessions WHERE session_name=:name;';
  54.         $database->query($sql, $params);
  55.         if ($database->getCount()) {
  56.             return $database->getResult()[0]->session_object;
  57.         } else {
  58.             return FALSE;
  59.         }
  60.     }
  61.  
  62.     public static function createSession($array) {
  63.         $database = DB::getInstance();
  64.         $expire = $array['remember_me'];
  65.         unset($array['remember_me']);
  66.         $array = base64_encode(serialize($array));
  67.         $salt = uniqid(rand(), true);
  68.         $session_name = sha1($salt . $salt);
  69.         $params = array(
  70.             ':salt' => array(
  71.                 'param' => $salt,
  72.                 'type' => 2
  73.             ),
  74.             ':name' => array(
  75.                 'param' => $session_name,
  76.                 'type' => 2
  77.             ),
  78.             ':object' => array(
  79.                 'param' => $array,
  80.                 'type' => 2
  81.             ),
  82.             ':time' => array(
  83.                 'param' => time(),
  84.                 'type' => 1
  85.             ),
  86.             ':expire' => array(
  87.                 'param' => (int) $expire,
  88.                 'type' => 1
  89.             )
  90.         );
  91.         $sql = "INSERT INTO `iziforum`.`sessions` "
  92.                 . "(`session_id`, `session_salt`, `session_name`, `session_object`, `session_create`, `session_expire`) "
  93.                 . "VALUES (NULL, :salt, :name, :object, :time, :expire);";
  94.         $database->query($sql, $params);
  95.     }
  96.  
  97.     public static function delete($name) {
  98.         if (self::exists($name)) {
  99.             unset($_SESSION[$name]);
  100.         }
  101.     }
  102.  
  103. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement