thinkphp3.2版本核心中的Cookies修复

修复thinkphp 3.2模版变量中和在标签中使用Think模版变量cookie\session解析结果为空的bug:

 

修改ThinkPHP\Library\Think\Template.class.php 605行

//以下代码中有 当设置了session cookies前缀的情况下 模版变量应用会失效 需修改为下面代码

// case 'COOKIE':

//     if(isset($vars[3])) {

//         $parseStr = '$_COOKIE[\''.$vars[2].'\'][\''.$vars[3].'\']';

//     }else{

//         $parseStr = 'cookie(\''.$vars[2].'\')';

//     }

//     break;

// case 'SESSION':

//     if(isset($vars[3])) {

//         $parseStr = '$_SESSION[\''.$vars[2].'\'][\''.$vars[3].'\']';

//     }else{

//         $parseStr = 'session(\''.$vars[2].'\')';

//     }

//     break;

case 'COOKIE':

    if(isset($vars[3])) {

        $prefix=C('COOKIE_PREFIX');

        $prefixStr = empty($prefix) ? '' : "['".$prefix."']";

        $parseStr = '$_COOKIE'.$prefixStr.'[\''.$vars[2].'\'][\''.$vars[3].'\']';

    }else{

        $parseStr = 'cookie(\''.$vars[2].'\')';

    }

    break;

case 'SESSION':

    if(isset($vars[3])) {

        $prefix = C('SESSION_PREFIX');

        $prefixStr = empty($prefix) ? '' : "['".$prefix."']";

        $parseStr = '$_SESSION'.$prefixStr.'[\''.$vars[2].'\'][\''.$vars[3].'\']';

    }else{

        $parseStr = 'session(\''.$vars[2].'\')';

    }

    break;

 

 

修改ThinkPHP\Library\Think\Template\TagLib.class.php parseThinkVar函数 206行为如下代码:

 

case 'COOKIE':

    if(isset($vars[3])) {

        $prefix=C('COOKIE_PREFIX');

        $prefixStr = empty($prefix) ? '' : "['".$prefix."']";

        $parseStr = '$_COOKIE'.$prefixStr.'[\''.$vars[2].'\'][\''.$vars[3].'\']';

    }else{

        $parseStr = 'cookie(\''.$vars[2].'\')';

    }

    break;

case 'SESSION':

    if(isset($vars[3])) {

        $prefix = C('SESSION_PREFIX');

        $prefixStr = empty($prefix) ? '' : "['".$prefix."']";

        $parseStr = '$_SESSION'.$prefixStr.'[\''.$vars[2].'\'][\''.$vars[3].'\']';

    }else{

        $parseStr = 'session(\''.$vars[2].'\')';

    }

    break;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值