您的位置:首页 > 其它

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

2017-03-20 09:37 423 查看
Discuz!X cookie生成文件位置   source\function\function_core.php

Discuz!X cookie封装源码   生成COOKIE

<?php

function dsetcookie($var, $value = '', $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);

}

}

 

Discuz!X cookie封装源码   读取COOKIE

<?php

    function getcookie($key)    {     global $_G;     return isset($_G['cookie'][$key]) ? $_G['cookie'][$key] : '';    }

Discuz!X cookie封装源码  设置cookie:

<?php

  dsetcookie('cookie名', 'cookie值', '有效时间');

Discuz!X cookie封装源码    dsetcookie()方法分析

   function dsetcookie($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;    }

Discuz!X cookie封装源码    在程序中读取cookie        第一种使用getcookie函数:    getcookie('cookie名');    第二种直接访问全局变量$_G:    $_G['cookie']['cookie名']
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: