php中利用cookie实现购物车实例
购物车实现方法最常用的几种方法有,cookie,session与把记录保存到数据库,下面我来介绍最简单的方法就利用cookie作为购物车的商品记录存储库。
PHP购物车,在互联网中有好多网店,他们是怎样实现购物车?大多的网站都用cookie来实现,偶也自己写了一个简单的实例让大家参考一下.
用cookie简单的实现购物车,数据库代码如下:
- phpMyAdmin SQL Dump - version 2.11.9.2 - - 主机: 127.0.0.1:3306 - 生成日期: 2009 年 12 月 06 日 02:05 - 服务器版本: 5.1.28 - PHP 版本: 5.2.6 SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO"; - - 数据库: `shopper` - - ————————————————————————————————————- - - 表的结构 `shop` - CREATE TABLE IF NOT EXISTS `shop` ( `id` int(11) NOT NULL AUTO_INCREMENT, `price` int(11) NOT NULL, `title` varchar(110) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=6 ; - - 导出表中的数据 `shop` - INSERT INTO `shop` (`id`, `price`, `title`) VALUES (1, 100, '玉米'), (2, 200, '大豆'), (3, 500, '西瓜'), (4, 900, '冬瓜'), (5, 800, '大米');
PHP代码文件:
<?php /* 作者:简单小屋 QQ群1:32311900(满) QQ群2:50900416 QQ2:39407******(满)简单小屋 QQ2:8726**** 海角 */ $conn = mysql_connect("localhost", "root", ""); mysql_select_db("shopper", $conn); mysql_query("SET NAMES utf8"); $sql = "SELECT * FROM `shop` WHERE 1 "; $sql2 = mysql_query($sql); if ($_POST[ok]) { $_POST[number] = (int)$_POST[number]; if ($_POST[number] > 0) { $idid = $_POST[id]; setcookie("cookie_arr[$idid]", $_POST[title] . "|" . $_POST[number] . "|" . $_POST[price] . "|" . $_POST[number] * $_POST[price], time() + 36000); header("location:shop.php"); } else { echo "输入的数量不正确.<br>"; } } if (isset($_COOKIE['cookie_arr'])) { foreach ($_COOKIE['cookie_arr'] as $name => $value) { $value2 = explode("|", $value); echo "ID({$name}) —— $value2[0] —— 数量:$value2[1] - 单价:$value2[2] - 总价格:$value2[3] <hr />n"; } } ?>
<!DOCTYPE html><html xmlns="<head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>无标题文档</title> </head> <body> <?php while ($row = mysql_fetch_array($sql2)) { ?> <form action="" method="post"> <input name="id" type="hidden" value="<?php echo $row[id]; ?> " /> <input name="price" type="hidden" value="<?php echo $row[price]; ?> " /> <input name="title" type="hidden" value="<?php echo $row[title]; ?> " /> id:<?php echo $row[id]; ?> <br /> 商品名:<?php echo $row[title]; ?> <br /> 价格:<?php echo $row[price]; ?> <br /> 数量: <input name="number" type="text" value="1" size="5" /> <input name="ok" type="submit" value="购买"/> </form> <hr /> <?php } ?> </body> </html>
缺点分析:cookie作为购物车很容易丢失了,如果用户清除浏览器缓存就有可能丢失cookie值哦,所以一般正常情况都是利用cookie+数据库来实例.
本文地址:http://www.phprm.com/huihua/fs1257.html
转载随意,但请附上文章地址:-)