Advertisement
fabi0

Untitled

May 19th, 2014
274
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 3.06 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 = \Models\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 get($name) {
  41.  
  42.         $database = \Models\DB::getInstance();
  43.         $params = array(
  44.             ':name' => array(
  45.                 'param' => $name,
  46.                 'type' => 2
  47.             )
  48.         );
  49.         $sql = 'SELECT session_object FROM sessions WHERE session_name=:name;';
  50.         $database->query($sql, $params);
  51.         if ($database->getCount()) {
  52.             return $database->getResult()[0]->session_object;
  53.         } else {
  54.             return FALSE;
  55.         }
  56.     }
  57.  
  58.     public static function createSession($array) {
  59.         $database = DB::getInstance();
  60.         @$expire = $array['remember_me'];
  61.         unset($array['remember_me']);
  62.         $array = base64_encode(serialize($array));
  63.         $salt = uniqid(rand(), true);
  64.         $session_name = sha1($salt . $salt);
  65.         $params = array(
  66.             ':salt' => array(
  67.                 'param' => $salt,
  68.                 'type' => 2
  69.             ),
  70.             ':name' => array(
  71.                 'param' => $session_name,
  72.                 'type' => 2
  73.             ),
  74.             ':object' => array(
  75.                 'param' => $array,
  76.                 'type' => 2
  77.             ),
  78.             ':time' => array(
  79.                 'param' => time(),
  80.                 'type' => 1
  81.             ),
  82.             ':expire' => array(
  83.                 'param' => (int) $expire,
  84.                 'type' => 1
  85.             )
  86.         );
  87.         $sql = "INSERT INTO `sessions` "
  88.                 . "( `session_salt`, `session_name`, `session_object`, `session_create`, `session_expire`) "
  89.                 . "VALUES (:salt, :name, :object, :time, :expire);";
  90.         $database->query($sql, $params);
  91.         return $session_name;
  92.     }
  93.  
  94.     public static function delete($name) {
  95.         $database = \Models\DB::getInstance();
  96.         $params = array(
  97.             ':name' => array(
  98.                 'param' => $name,
  99.                 'type' => 2
  100.             )
  101.         );
  102.         $sql = "DELETE FROM sessions WHERE session_name = :name";
  103.         $database->query($sql, $params);
  104.         return $database->getErrors();
  105.     }
  106.  
  107.     public static function update($name, $data) {
  108.         // TODO
  109.         $database = \Models\DB::getInstance();
  110.     }
  111.  
  112. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement