当前位置:首页 > PHP教程 > php应用 > 列表

php购物车实现方法

发布:smiling 来源: PHP粉丝网  添加日期:2021-05-05 13:37:58 浏览: 评论:0 

这篇文章主要介绍了php购物车实现方法,通过4个文件实现购物车的功能,且使用txt文件保存购物车内容,简单实用,需要的朋友可以参考下

本文实例讲述了php购物车实现方法。分享给大家供大家参考。具体分析如下:

这里我们为你提供个简单的php购物车代码,从增加购物产品与发生购买了,在商城开发中,这个功能是少不了的,我们不需要数据库,用了txt文本文件来操作用户购物的内容.

增加商品到购物车,代码如下:

  1. <?php 
  2. // 
  3. // add_item.php: 
  4. //  Add an item to the shopping cart. 
  5. // 
  6. session_start(); 
  7. if (session_is_registered('cart')) { 
  8.     session_register('cart'); 
  9.  
  10. require 'lib.inc.php'; // LoadProducts() 
  11.  
  12. LoadProducts(); // Load products in $master_products_list 
  13.  
  14. // Make $curr_product global 
  15. $curr_product = array(); 
  16.  
  17. // Loop through all the products and pull up the product 
  18. // that we are interested in 
  19.  
  20. foreach ($master_products_list as $prod_id => $product) { 
  21.     if (trim($prod_id) == trim($_GET[id])) { 
  22.         $curr_product = $product; 
  23.     } 
  24.  
  25. // Register our session 
  26. //session_register('cart'); 
  27. //if(session_is_registered('cart')) echo "已经注册"; 
  28.  
  29. if ($_POST[ordered]) {  // If they have chosen the product 
  30.  
  31.     array_push($_SESSION[cart][products], array(trim($_POST[id]), $_POST[quantity])); 
  32.     $_SESSION[cart][num_items] += $_POST[quantity]; 
  33. ?> 
  34. <html> 
  35. <head> 
  36.     <title> 
  37.     <?php if ($_POST[ordered]) {  ?> 
  38.         已经添加 <?php echo $curr_product[name]; ?> 到您的购物篮 
  39.     <?php } else {  ?> 
  40.         添加 <?php echo $curr_product[name]; ?> 到您的购物篮 
  41.     <?php } ?> 
  42.     </title> 
  43. </head> 
  44. <body> 
  45. <?php if ($_POST[ordered]) {  ?> 
  46.     <h1><?php echo $curr_product[name]; ?> 
  47.         添加至购物篮成功</h1> 
  48.  
  49.     <a href="cart.php">返回</a> 商品列表页面. 
  50. <?php }  else {  ?> 
  51.     <h1>添加 <?php echo $curr_product[name]; ?> 到您的购物篮</h1> 
  52.  
  53.     <form action="<?php echo $PHP_SELF; ?>" method="post"> 
  54.     商品名称: <?php echo $curr_product[name]; ?> 
  55.     <br> 
  56.     商品说明: <?php echo $curr_product[desc]; ?> 
  57.     <br> 
  58.     商品单价: RMB<?php echo $curr_product[price]; ?> 
  59.     <br> 
  60.     商品数量: <input type="text" size="7" name="quantity"> 
  61.     <input type="hidden" name="id" value="<?php echo $_GET[id]; ?>"> 
  62.     <input type="hidden" name="ordered" value="1"> 
  63.     <input type="submit" value="添加至购物栏"> 
  64.     </form> 
  65. <?php } ?> 
  66. </body> 
  67. </html> 

查看购物车的商品,代码如下:

  1. <?php 
  2. // 
  3. // cart.php: 
  4. // 
  5. session_start(); 
  6.  
  7. require 'lib.inc.php'
  8. //判断购物篮会话变量cart是否注册,不注册则注册cart变量 
  9. if (session_is_registered('cart')) { 
  10.     session_register('cart'); 
  11.  
  12. // 如果购物篮没有初始化,则初始化购物篮 
  13. if (!isset($_SESSION[cart][num_items])) { 
  14.     $_SESSION[cart] = array("num_items" => 0, 
  15.                   "products"  => array()); 
  16. // From site_lib.inc, Loads the $master_products_list array 
  17. LoadProducts(); //载入物品列表 
  18. ?> 
  19. <html> 
  20. <head> 
  21.     <title>演示会话跟踪的购物篮程序</title> 
  22. </head> 
  23.  
  24. <body> 
  25.  
  26. <h1>欢迎进入网上商店</h1> 
  27.  
  28. <?php 
  29. if ($_SESSION[cart][num_items]) {  // If there is something to show 
  30. ?> 
  31. <h2>当前在购物篮里的物品</h2> 
  32. <br> 
  33. <table border="2" cellpadding="5" cellspacing="2"
  34. <tr> 
  35.     <th> 
  36.         商品名称 
  37.     </th> 
  38.     <th> 
  39.         商品说明 
  40.     </th> 
  41.     <th> 
  42.         单价 
  43.     </th> 
  44.     <th> 
  45.         数量 
  46.     </th> 
  47.     <th>&nbsp; 
  48.          
  49.     </th> 
  50. </tr> 
  51. <?php 
  52.    
  53.     // Loop through the products 
  54.     foreach ($_SESSION[cart][products] as $i => $product) { 
  55.         $product_id = $product[0]; 
  56.         $quantity   = $product[1]; 
  57.  
  58.         $total += $quantity * 
  59.                   (double)$master_products_list[$product_id][price]; 
  60. ?> 
  61. <tr> 
  62.     <td> 
  63.         <?php echo $master_products_list[$product_id][name]; ?> 
  64.     </td> 
  65.     <td> 
  66.         <?php echo $master_products_list[$product_id][desc]; ?> 
  67.     </td> 
  68.     <td> 
  69.         <?php echo $master_products_list[$product_id][price]; ?> 
  70.     </td> 
  71.     <td> 
  72.         <form action="change_quant.php" method="post"
  73.         <input type="hidden" name="id" value="<?php echo $i; ?>"
  74.         <input type="text" size="3" name="quantity" 
  75.                 value="<?php echo $quantity; ?>"
  76.     </td> 
  77.     <td> 
  78.         <input type="submit" value="数量更改"
  79.         </form> 
  80.     </td> 
  81. </tr> 
  82. <?php 
  83.     } 
  84. ?> 
  85. <tr> 
  86.     <td colspan="2" ALIGN="right"
  87.        <b>合计: </b> 
  88.     </td> 
  89.     <td colspan="2"
  90.         RMB:<?php echo $total; ?> 
  91.     </td> 
  92.  <td>&nbsp;</td> 
  93. </tr> 
  94. </table> 
  95. <br> 
  96. <br> 
  97. <?php 
  98. ?> 
  99.  
  100. <h2>商店待出售的商品</h2> 
  101. <br> 
  102. <i> 
  103.     我们提供以下商品待售: 
  104. </i> 
  105. <br> 
  106. <table border="2" cellpadding="5" cellspacing="2"
  107. <tr> 
  108.     <th> 
  109.         商品名称 
  110.     </th> 
  111.     <th> 
  112.         商品说明 
  113.     </th> 
  114.     <th> 
  115.         单价 
  116.     </th> 
  117.     <th>&nbsp; 
  118.          
  119.     </th> 
  120. </tr> 
  121. <?php 
  122.     // Show all of the products 
  123.     foreach ($master_products_list as $product_id => $item) { 
  124. ?> 
  125. <tr> 
  126.     <td> 
  127.         <?php echo $item[name]; ?> 
  128.     </td> 
  129.     <td> 
  130.         <?php echo $item[desc]; ?> 
  131.     </td> 
  132.     <td> 
  133.         $<?php echo $item[price]; ?> 
  134.     </td> 
  135.     <td> 
  136.         <a href="add_item.php?id=<?php echo $product_id; ?>"
  137.             添加至购物篮 
  138.         </a> 
  139.     </td> 
  140. </tr> 
  141. <?php 
  142.     } 
  143.  
  144. ?> 
  145. </table> 

修改购物车的数量,代码如下: 

  1. <?php  
  2. //  
  3. // change_quant.php:  
  4. //   Change the quantity of an item in the shopping cart.  
  5. //  
  6. session_start();  
  7. if (session_is_registered('cart')) {  
  8.     session_register('cart');  
  9. }  
  10.  
  11. // Typecast to int, making sure we access the  
  12. // right element below  
  13. $i = (int)$_POST[id];  
  14.  
  15. // Save the old number of products for display  
  16. // and arithmetic  
  17. $old_num = $_SESSION[cart][products][$i][1];  
  18.  
  19. if ($_POST[quantity]) {  
  20.     $_SESSION[cart][products][$i][1] = $_POST[quantity]; //change the quantity  
  21. else {  
  22.     unset($_SESSION[cart][products][$i]); // Send the product into oblivion  
  23. }  
  24.  
  25. // Update the number of items  
  26. $_SESSION[cart][num_items] = ($old_num >$_POST[quantity]) ?  
  27.                    $_SESSION[cart][num_items] - ($old_num-$_POST[quantity]) :  
  28.                    $_SESSION[cart][num_items] + ($_POST[quantity]-$old_num);  
  29. ?>  
  30.  
  31. <html>  
  32. <head>  
  33.     <title>  
  34.         数量修改  
  35.     </title>  
  36. </head>  
  37. <body>  
  38.     <h1> 将数量: <?php echo $old_num; ?> 更改为  
  39.          <?php echo $_POST[quantity]; ?></h1>  
  40.     <a href="cart.php">返回</a> 商品列表页面.  
  41. </body>  
  42. </html>  

功能页面,用户把购物车里面的内容保存到txt数据库,代码如下:

  1. <?php 
  2. //物品数组 
  3. $master_products_list = array(); 
  4.  
  5.  
  6. //载入物品数据函数 
  7. function LoadProducts() { 
  8.     global $master_products_list
  9.     $filename = 'products.txt'
  10.  
  11.     $fp = @fopen($filename"r"
  12.         or die("打开 $filename 文件失败"); 
  13.     @flock($fp, 1) 
  14.         or die("锁定 $filename 文件失败"); 
  15.  
  16.     //读取文件内容 
  17.     while ($line = fgets($fp, 1024)) { 
  18.         list($id$name$desc$price) = explode('|'$line); //读取每行数据,数据以| 格开 
  19.         $id = trim($id); //去掉首尾特殊符号 
  20.         $master_products_list[$id] = array("name" =>  $name//名称 
  21.                                            "desc" =>  $desc//说明 
  22.                                            "price" => $price); //单价 
  23.     } 
  24.  
  25.     @fclose($fp)  //关闭文件 
  26.         or die("关闭 $filename 文件失败"); 
  27. ?> 

很简单,我们只用了4个文件就实现用php 做好购物车功能,好了这只是一款简单的php购物车代码更复杂的需要考虑更多更好.

Tags: php购物车

分享到: