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

  • 2016-3-31 08:42
  • PHP二次开发
  • 阅读(6386)
  • 评论(2
  • 来源:互联网
  • 摘要: Discuz!X cookie生成文件位置 source\function\function_core.phpDiscuz!X cookie封装源码 生成COOKIE ?php function dsetcookie($var, $value = '', $life = 0, $prefix = 1, $httponly = false) { global $_G; $co ...
    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名']

    PHP技术交流QQ群:422137578

    除非注明,文章均为 PHP二次开发 原创,转载请注明本文地址:http://www.php2.cc/article-2176-1.html

    相关阅读

    发表评论

    最新评论

    引用 小萌希奥加盟   2017-11-17 14:32
    虽然没看懂,不错
    引用 母婴B2b   2016-5-23 15:35
    感谢博主分享

    查看全部评论(2)

    用户名:  *

    邮 箱:  *

    网 址: 注意加上“http://”哦!