为了账号安全,请及时绑定邮箱和手机立即绑定

php 如何用SESSION 記憶購物車資訊?

php 如何用SESSION 記憶購物車資訊?

侃侃尔雅 2019-03-14 22:15:08
我要將商品加入購物車我想先丟到SESSION去記憶只是我不懂原理是什麼?有大神可以幫我解析嗎??會有商品名稱 圖片 單價 數量 小計甚至可以移除該商品丟到SESSION去記憶要怎麼實現?以往我 SESSION 都是單一值例如 $_SESSION['abc'] = 'abc';可以保存多個?且每個都有 key, value我原本是想說丟到數據庫記憶但這方法對嗎?
查看完整描述

5 回答

?
MM们

TA贡献1886条经验 获得超2个赞

$_SESSION全局变量中可以存储数组

session_start();


$_SESSION['goods'] = [

    'name' => 'goodsname',

    'pic' => 'url',

    'price' => 10.10,

    'num' => 100,

    'summary' => 999.50

];

print_r($_SESSION['goods']);


这样存储的数据在用户关闭浏览器后就消失了,新开浏览器窗口将创建新的会话,之前的会话会在过期时自动销毁


查看完整回答
反对 回复 2019-04-08
?
慕码人8056858

TA贡献1803条经验 获得超6个赞

简单点来说,操作SESSION可以视为操作数组一样;

楼主说session保存购物车信息如何操作,demo如下:


// 假如SESSION里的购物车商品保存的是这种数据形式

$_SESSION['cart']['goods'] = [

    'goods_id' => [

        'goods_name' => 'goods_name',

        'price'      => 'price',

        'spec'       => 'spec',

        'num'        => 'num'

    ],

    '1' => [

        'goods_name' => '橙子',

        'price'      => '15.00',

        'spec'       => '脐橙;',

        'num'        => '10'

    ],

    '2' => [

        'goods_name' => '苹果',

        'price'      => '10.00',

        'spec'       => '红苹果;',

        'num'        => '5'

    ]

];


/**

 * 存储商品信息到购物车

 * 1、先取出SESSION购物车里的商品数据

 * 2、生成新的商品数据

 * 3、保存到SESSION

 */

$session_goods = $_SESSION['cart']['goods'];


$session_goods[11] = [

    'goods_name' => 'T恤',

    'price'      => '69.00',

    'spec'       => '颜色:红色;品牌:以纯;',

    'num'        => '1'

];


$_SESSION['cart']['goods'] = $session_goods;



/**

 * 购物车里商品ID为1的商品需要删除

 * 并更新保存到SESSION

 */

unset($goods['1']);

$_SESSION['cart']['goods'] = $goods;


查看完整回答
反对 回复 2019-04-08
?
撒科打诨

TA贡献1934条经验 获得超2个赞

购物车一般存在缓存中


查看完整回答
反对 回复 2019-04-08
?
德玛西亚99

TA贡献1770条经验 获得超3个赞

session可以存数组的,没登录你就先给他扔session里面,离开页面就消失了;如果登录了你就把他同步到登录的这个人的信息里面


查看完整回答
反对 回复 2019-04-08
  • 5 回答
  • 0 关注
  • 471 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信