Beispiel #1
0
 public function testUpdates()
 {
     $this->assertEquals(0, count($this->cookie->get_updates()));
     $this->cookie->set('fairy', 'test');
     $updates = $this->cookie->get_updates();
     $this->checkUpdate('fairy', 'test', null, null, null, null, null);
     $this->cookie->set('fairy', 'test', 4, '/', 'phpixie.com', true, true);
     $updates = $this->cookie->get_updates();
     $this->checkUpdate('fairy', 'test', 4, '/', 'phpixie.com', true, true);
     $this->cookie->remove('fairy');
     $this->checkUpdate('fairy', null, -24 * 3600 * 30, null, null, null, null);
 }
Beispiel #2
0
 static function destroy($id)
 {
     if (!self::$started) {
         return;
     }
     self::$started = false;
     session_unset();
     //frees the variables (like $_SESSION)
     self::$data->delete();
     self::$data = null;
     Cookie::remove('sessionId');
     Cookie::remove('sessionKey');
 }
Beispiel #3
0
 /**
  * Logout by removing the Session and Cookies.
  *
  * @access public
  * @param  integer $userId
  * @param  bool    $keepSession
  *
  */
 public function logOut($userId, $keepSession = false)
 {
     Session::remove($keepSession);
     Cookie::remove($userId);
 }
Beispiel #4
0
 public static function get()
 {
     $notice = json_decode(Cookie::get(self::$_key));
     Cookie::remove(self::$_key);
     return $notice;
 }
 function delete()
 {
     Cookie::remove($this->key, $this->options);
 }
Beispiel #6
0
 function __construct($in = false, $cookieMessagesName = false)
 {
     //+	parse input{
     if ($in === false) {
         //apply default
         //+	Handle GET and POST variables{
         $in['get'] = $_SERVER['QUERY_STRING'];
         //we take it from here b/c php will replace characters like '.' and will ignore duplicate keys when forming $_GET
         //can cause script to hang (if no stdin), so don't run if in script unless configured to
         if (!$_ENV['inScript'] || $_ENV['scriptGetsStdin']) {
             //multipart forms can either result in 1. input being blank or 2. including the upload.  In case 1, post vars can be taken from $_POST.  In case 2, need to avoid putting entire file in memory by parsing input
             if (substr($_SERVER['CONTENT_TYPE'], 0, 19) != 'multipart/form-data') {
                 $in['post'] = file_get_contents('php://input');
                 $in['post'] = $in['post'] ? $in['post'] : file_get_contents('php://stdin');
             } elseif ($_POST) {
                 $in['post'] = http_build_query($_POST);
             }
         }
         if ($_SERVER['CONTENT_TYPE'] == 'application/json') {
             $in['post'] = ['json' => json_decode($in['post'])];
         } else {
             $in['post'] = Http::parseQuery($in['post'], $_ENV['pageInPHPStyle']);
         }
         $in['get'] = Http::parseQuery($in['get'], $_ENV['pageInPHPStyle']);
         $this->in = Arrays::merge($in['get'], $in['post']);
         //+	}
     } elseif (is_array($in)) {
         $this->in = $in;
     } else {
         $this->in = Http::parseQuery($in, $_ENV['pageInPHPStyle']);
     }
     $this->originalIn = $this->in;
     if ($_ENV['stripInputContexts']) {
         $this->in = self::removeInputContexts($this->in);
     }
     //+	}
     //+	Handle COOKIE system messages{
     if ($cookieMessagesName === false) {
         //apply default
         $cookieMessagesName = '_PageMessages';
     }
     //Page message are intended to be shown on viewed pages, not ajax responses, so ignore on ajax
     if ($cookieMessagesName && $_COOKIE[$cookieMessagesName] && !$this->in['_ajax']) {
         do {
             $cookie = @unserialize($_COOKIE[$cookieMessagesName]);
             if (is_array($cookie)) {
                 $code = self::saveMessagesCode($cookie['data']);
                 if ($cookie['code'] == $code) {
                     if (is_array($cookie['target'])) {
                         if (!array_diff($cookie['target'], Route::$urlTokens)) {
                             $this->messages = @unserialize($cookie['data']);
                         } else {
                             //not on right page, so break
                             break;
                         }
                     } else {
                         $this->messages = @unserialize($cookie['data']);
                     }
                 }
             }
             Cookie::remove($cookieMessagesName);
         } while (false);
     }
     //+	}
     //load db if configured
     if ($_ENV['database']['default']) {
         $this->db = Db::init(null, $_ENV['database']['default']);
     }
 }