ThinkPHP--浏览历史

Posted SYsunyi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ThinkPHP--浏览历史相关的知识,希望对你有一定的参考价值。

<?php 
/**
 * session.php     浏览历史
 * 1)需要在goods()查询出来的信息做判断。查询出来有信息时才能进行写入session。否则不写入
 * 2)写对应的方法history
 * 3)在对应模板中显示出历史浏览
 */

//对于goods()查询出来的信息做判断
public function goods(){
    $goods_info = D( ‘ goods ‘ )->find( ‘ get.goods_id ‘ );
    if($goods_info){//若获取该条信息成功
        //调用history()方法
        $this->history($goods_info);
        //var_dump(session(‘history‘));
    }
    $this->assign( ‘ mbx ‘ , $this->mbx($goods_info[‘cat_id‘]));
    $this->assign( ‘ goods ‘ , $goods_info);
    $this->display();
}

//写对应的方法history()
public function history($info){
    //判断session里面有没有历史,若没有给空,有,将session赋给$row
    $row = session( ‘ ?history ‘ )?session(‘history‘):array();
    //将查询过的数据放在一个数组中,查询出来对应的商品的id新建一个数组,形成二维数组
    $g = array();
    $g[‘goods_name‘] = $info[‘goods_name‘];
    $g[‘shop_price‘] = $info[‘shop_price‘];
    $g[‘goods_id‘] = $info[‘goods_id‘];

    $row[$info[ ‘ goods_id ‘ ]] = $g;

    //若数据大于7条,则删除第一条
    if(count($row)>5){//count记录总条数
        $key = key($row);//key()从数组中返回当前指针所在的位置的键名
        unset($row[$key]);
    }
    session(‘history‘ , $row);
}


//cat页面的浏览历史,注意浏览顺序。翻转函数array_reverse()
public function cat(){
    $cat_id  = I(‘get.cat_id‘);
    $this->assign(‘his‘ , array_reverse(session(‘history‘)));
    $cats = D(‘gods‘)->filed(........);
    $this->assign(‘cat_goods‘ , $cats);
    $this->display();
}

//写入到对应的模板中
 ?>

 

以上是关于ThinkPHP--浏览历史的主要内容,如果未能解决你的问题,请参考以下文章

从防护角度看Thinkphp历史漏洞

谷歌浏览器调试jsp 引入代码片段,如何调试代码片段中的js

ThinkPhp常见历史漏洞小结

GitLab

超级有用的9个PHP代码片段

总结下ThinkPHP的代码审计方法