Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. <?php
  2. class Cookie {
  3. private $security;
  4. private $config;
  5. public $isSecure;
  6. function __construct() {
  7. global $config, $security;
  8. $this->config = $config;
  9. $this->isSecure = $this->config['settings']['encrypt-cookie'];
  10. $this->security = $security;
  11. }
  12. public function refreshCookie($key, $data=null, $expire=0, $path='/', $domain='', $secure=false, $httponly=false) {
  13. $saveData = (is_array($data) || is_object($data) || is_bool($data)) ? json_encode($data) : $data;
  14. if (isset($_COOKIE[$key])) unset($_COOKIE[$key]);
  15. if ($this->isSecure) {
  16. $saveData = $this->security->secureString($saveData, 'e');
  17. }
  18. return setcookie($key, $saveData, $expire, $path, $domain, $secure, $httponly);
  19. }
  20. public function readCookie($key=null) {
  21. if (isset($_COOKIE[$key])) {
  22. $cookieData = $_COOKIE[$key];
  23. if ($this->isSecure) {
  24. $cookieData = $this->security->secureString($cookieData, 'd');
  25. }
  26. if ($this->isJson($cookieData)) {
  27. return json_decode($cookieData, true);
  28. } else {
  29. return $cookieData;
  30. }
  31. }
  32. return false;
  33. }
  34. public function deleteCookie($key=null) {
  35. if (isset($_COOKIE[$key])) {
  36. unset($_COOKIE[$key]);
  37. setcookie($key, null, time()-3600, '/');
  38. }
  39. return !isset($_COOKIE[$key]);
  40. }
  41. private function isJson($string) {
  42. return is_string($string) && is_array(json_decode($string, true)) && (json_last_error() == JSON_ERROR_NONE) ? true : false;
  43. }
  44. }