养生 装修 购物 美食 感冒 便秘 营销 加盟 小吃 火锅 管理 创业 搭配 减肥 培训 旅游

Discuz! X cookie的设置与使用详解

时间:2024-09-24 12:16:44

最近在做Discuz!系列的插件,需要用到cookie,我在编写插件的时候如果不加入session_start函数cookie就无法使用。

方法/步骤

1、Discuz!Xcookie生成文件位置source\function\function_core.php

2、Discuz!Xcookie封装源码忭孚鲟苎生成COOKIE<?phpfunctiondsetcookie($var,$value='刻八圄俏9;,$life=0,$prefix=1,$httponly=false){ global$_G; $config=$_G['config']['cookie']; $_G['cookie'][$var]=$value; $var=($prefix?$config['cookiepre']:'').$var; $_COOKIE[$var]=$value; if($value==''||$life<0){ $value=''; $life=-1; } if(defined('IN_MOBILE')){ $httponly=false; } $life=$life>0?getglobal('timestamp')+$life:($life<0?getglobal('timestamp')-31536000:0); $path=$httponly&&PHP_VERSION<'5.2.0'?$config['cookiepath'].';HttpOnly':$config['cookiepath']; $secure=$_SERVER['SERVER_PORT']==443?1:0; if(PHP_VERSION<'5.2.0'){ setcookie($var,$value,$life,$path,$config['cookiedomain'],$secure); }else{ setcookie($var,$value,$life,$path,$config['cookiedomain'],$secure,$httponly); }}

3、Discuz!Xcookie封装源码读取COOKIE<?phpfunctiongetcookie($key){global$_G;returnisset($_G['cookie'][$key])?$_G['cookie'][$key]:'';}

4、Discuz!Xcookie封装源码设置cookie:<?phpdsetcookie('cookie名','cookie值','有效时间');

5、Discuz!Xcookie封装源码蟠校盯昂dsetcookie()方法分析functiondsetc泠贾高框ookie($var,$value='',$life=0,$prefix=1,$httponly=false)dsetcookie()还有两个参数$prefix与$httponly$prefix为是否添加cookie前缀,true则自动添加网站的前缀,false则不添加$httponly表示是否只允许http方式访问,这两个值只要默认值即可,有需要可另外设置,不过当用户访问的是手机版则$httponly会被自动设置为false,见function_core.php第272行if(defined('IN_MOBILE')){$httponly=false;}

6、Discuz!Xcookie封装源码在程序中读取cookie第一种使用getcookie函数:getcookie('cookie名');第二种直接访问全局变量$_G:$_G['cookie']['cookie名']

© 一点知识