php中利用cookie实现购物车实例

购物车实现方法最常用的几种方法有,cookie,session与把记录保存到数据库,下面我来介绍最简单的方法就利用cookie作为购物车的商品记录存储库。

PHP购物车,在互联网中有好多网店,他们是怎样实现购物车?大多的网站都用cookie来实现,偶也自己写了一个简单的实例让大家参考一下.

用cookie简单的实现购物车,数据库代码如下:

  1. – phpMyAdmin SQL Dump
  2. – version 2.11.9.2
  3. – 主机: 127.0.0.1:3306
  4. – 生成日期: 2009 年 12 月 06 日 02:05
  5. – 服务器版本: 5.1.28
  6. – PHP 版本: 5.2.6
  7. SET SQL_MODE=”NO_AUTO_VALUE_ON_ZERO”;
  8. – 数据库: `shopper`
  9. – ——————————————————–
  10. – 表的结构 `shop`
  11. CREATE TABLE IF NOT EXISTS `shop` (
  12. `id` int(11) NOT NULL AUTO_INCREMENT,
  13. `price` int(11) NOT NULL,
  14. `title` varchar(110) NOT NULL,
  15. PRIMARY KEY (`id`)
  16. ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=6 ;
  17. – 导出表中的数据 `shop`
  18. INSERT INTO `shop` (`id`, `price`, `title`) VALUES
  19. (1, 100, ‘玉米’),
  20. (2, 200, ‘大豆’),
  21. (3, 500, ‘西瓜’),
  22. (4, 900, ‘冬瓜’),
  23. (5, 800, ‘大米’);

PHP代码文件:

  1. <?php
  2. /*
  3. 作者:简单小屋
  4. QQ群1:32311900(满)
  5. QQ群2:50900416
  6. QQ2:39407******(满)简单小屋
  7. QQ2:8726**** 海角
  8. */
  9. $conn=mysql_connect(“localhost”,”root”,”");
  10. mysql_select_db(“shopper”,$conn);
  11. mysql_query(“SET NAMES utf8″);
  12. $sql=”SELECT * FROM `shop` WHERE 1 “;
  13. $sql2=mysql_query($sql);
  14. if($_POST[ok]){
  15. $_POST[number]=(int)$_POST[number];
  16. if($_POST[number]>0){
  17. $idid=$_POST[id];
  18. setcookie(“cookie_arr[$idid]“,$_POST[title].”|”.$_POST[number].”|”.$_POST[price].”|”.$_POST[number]*$_POST[price],time()+36000);
  19. header(“location:shop.php”);
  20. }else{
  21. echo “输入的数量不正确.<br>”;
  22. }
  23. }
  24. if(isset($_COOKIE['cookie_arr'])){
  25. foreach($_COOKIE['cookie_arr'] as $name => $value) {
  26. $value2=explode(“|”,$value);
  27. echo “ID({$name}) — $value2[0] — 数量:$value2[1] – 单价:$value2[2] – 总价格:$value2[3] <hr />n”;
  28. }
  29. }
  30. ?>
  31. <!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “<html xmlns=”<head>
  32. <meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″ />
  33. <title>无标题文档</title>
  34. </head>
  35. <body>
  36. <?php
  37. while($row=mysql_fetch_array($sql2)){
  38. ?>
  39. <form action=”" method=”post”>
  40. <input name=”id” type=”hidden” value=”<?php echo $row[id]; ?>” />
  41. <input name=”price” type=”hidden” value=”<?php echo $row[price]; ?>” />
  42. <input name=”title” type=”hidden” value=”<?php echo $row[title]; ?>” />
  43. id:<?php echo $row[id]; ?><br />
  44. 商品名:<?php echo $row[title]; ?><br />
  45. 价格:<?php echo $row[price]; ?><br />
  46. 数量:
  47. <input name=”number” type=”text” value=”1″ size=”5″ />
  48. <input name=”ok” type=”submit” value=”购买”/>
  49. </form>
  50. <hr />
  51. <?php
  52. }
  53. ?>
  54. </body>
  55. </html>

缺点分析:cookie作为购物车很容易丢失了,如果用户清除浏览器缓存就有可能丢失cookie值哦,所以一般正常情况都是利用cookie+数据库来实例.