您的位置:首页 > 编程语言 > PHP开发

php+cookie 实现购物车

2014-01-24 10:48 218 查看
php+cookie实现购物车思路:

首先把获取到的数据进行序列化,之后添加到cookie中,之后再取出(取出之前去除反斜杠 ----用stripslashes函数解决

提示:该函数可用于为存储在数据库中的字符串以及数据库查询语句准备合适的字符串。
注释:默认情况下,PHP 指令 magic_quotes_gpc 为 on,对所有的 GET、POST 和 COOKIE 数据自动运行 addslashes()。不要对已经被 magic_quotes_gpc 转义过的字符串使用 addslashes(),因为这样会导致双层转义。遇到这种情况时可以使用函数 get_magic_quotes_gpc() 进行检测)
之后再反序列化取出即可。

下面来看看具体的代码:

添加到cookie购物车

/*

* @prarm $item是接收到的商品数组

*/

$cartUnSer[] = array( // 要添加到cookie中的商品数据 以数组的方式可以避免多个的话覆盖

'id'=>$id,

'title'=>$item['title'],

'price'=>$item['price'],

'img' =>$item['img'],

'type'=>$item['type'],

'num'=>1, //默认的数量为1

);

$cartSer = serialize($cartUnSer); //序列化数组

setcookie('Cart',$cartSer,time()+36000);//保存cookie

之后取出cookie中的商品:

$cookie = stripslashes ( $_COOKIE ['Cart'] ); //去除addslashes添加的反斜杠

$cartUnSer = unserialize ( $cookie );//反序列化cookie

之后显示在购物车页面中即可。

另外验证商品是否已经存在

(在添加商品之前反序列化cookie 查看商品id是否跟添加的商品id一样,如果一样,则在商品的数量上加1,如果不一样则添加商品)。

商品数量的加减:

商品数量的加减是把cookie反序列化之后在cookie中的商品数量上加,之后再序列化保存进cookie中。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: