cookie.init.php 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. <?php
  2. if (!defined('IS_INITPHP')) exit('Access Denied!');
  3. /*********************************************************************************
  4. * InitPHP 3.8.1 国产PHP开发框架 - 工具库-cookie
  5. *-------------------------------------------------------------------------------
  6. * 版权所有: CopyRight By initphp.com
  7. * 您可以自由使用该源码,但是在使用过程中,请保留作者信息。尊重他人劳动成果就是尊重自己
  8. *-------------------------------------------------------------------------------
  9. * Author:zhuli Dtime:2014-11-25
  10. ***********************************************************************************/
  11. class cookieInit {
  12. private $prefix = "init_"; //cookie前缀
  13. private $expire = 2592000; //cookie时间
  14. private $path = '/'; //cookie路径
  15. private $domain = '';
  16. /**
  17. * 设置cookie的值
  18. * 使用方法:$this->getUtil('cookie')->set();
  19. * @param string $name cookie的名称
  20. * @param string $val cookie值
  21. * @param string $expire cookie失效时间
  22. * @param string $path cookie路径
  23. * @param string $domain cookie作用的主机
  24. * @return string
  25. */
  26. public function set($name, $val, $expire = '', $path = '', $domain = '') {
  27. $expire = (empty($expire)) ? time() + $this->expire : $expire; //cookie时间
  28. $path = (empty($path)) ? $this->path : $path; //cookie路径
  29. $domain = (empty($domain)) ? $this->domain : $domain; //主机名称
  30. if (empty($domain)) {
  31. setcookie($this->prefix.$name, $val, $expire, $path);
  32. } else {
  33. setcookie($this->prefix.$name, $val, $expire, $path, $domain);
  34. }
  35. $_COOKIE[$this->prefix.$name] = $val;
  36. }
  37. /**
  38. * 获取cookie的值
  39. * 使用方法:$this->getUtil('cookie')->get($name);
  40. * @param string $name cookie的名称
  41. * @return string
  42. */
  43. public function get($name) {
  44. return $_COOKIE[$this->prefix.$name];
  45. }
  46. /**
  47. * 删除cookie值
  48. * 使用方法:$this->getUtil('cookie')->del($name)
  49. * @param string $name cookie的名称
  50. * @param string $path cookie路径
  51. * @return string
  52. */
  53. public function del($name, $path = '') {
  54. $this->set($name, '', time() - 3600, $path);
  55. $_COOKIE[$this->prefix.$name] = '';
  56. unset($_COOKIE[$this->prefix.$name]);
  57. }
  58. /**
  59. * 检查cookie是否存在
  60. * 使用方法:$this->getUtil('cookie')->is_set($name)
  61. * @param string $name cookie的名称
  62. * @return string
  63. */
  64. public function is_set($name) {
  65. return isset($_COOKIE[$this->prefix.$name]);
  66. }
  67. }