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

本文详细介绍了Discuz!X论坛系统中Cookie的生成与读取方法,包括dsetcookie函数的参数解析及应用场景,以及如何通过getcookie函数获取Cookie。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. Discuz!X cookie生成文件位置   source\function\function_core.php

  2. 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);

    }

    }

     

  3. Discuz!X cookie封装源码   读取COOKIE

    <?php

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

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

    <?php

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

  5. 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;    }

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值