首页 电脑 电脑学堂 查看内容

PHP购物车实现方法

2015-4-29 11:01 658 1

摘要: 购物车应该是用处比较多的一个功能点,这里写了个简单的php购物车代码,从增加购物产品与发生购买了,在商城开发中,这个功能是少不了的,我们不需要数据库,用了txt文本文件来操作用户购物的内容 ...
关键词: nbsp 商品 购物篮 product 购物车 quantity bsp session 代码 POST

购物车应该是用处比较多的一个功能点,这里写了个简单的php购物车代码,从增加购物产品与发生购买了,在商城开发中,这个功能是少不了的,我们不需要数据库,用了txt文本文件来操作用户购物的内容 增加商品到购物车,代码如下: [php] view plaincopy<?php     //     // add_item.php: http://www.lai18.com    //  Add an item to the shopping cart.     //     session_start();     if (session_is_registered('cart')) {         session_register('cart');     }          require 'lib.inc.php'; // LoadProducts()          LoadProducts(); // Load products in $master_products_list          // Make $curr_product global     $curr_product = array();          // Loop through all the products and pull up the product     // that we are interested in          foreach ($master_products_list as $prod_id => $product) {         if (trim($prod_id) == trim($_GET[id])) {             $curr_product = $product;         }     }          // Register our session     //session_register('cart');     //if(session_is_registered('cart')) echo "已经注册";          if ($_POST[ordered]) {  // If they have chosen the product              array_push($_SESSION[cart][products], array(trim($_POST[id]), $_POST[quantity]));         $_SESSION[cart][num_items] += $_POST[quantity];     }     ?>    <html>     <head>         <title>         <?php if ($_POST[ordered]) {  ?>             已经添加 <?php echo $curr_product[name]; ?> 到您的购物篮         <?php } else {  ?>             添加 <?php echo $curr_product[name]; ?> 到您的购物篮         <?php } ?>         </title>     </head>     <body>     <?php if ($_POST[ordered]) {  ?>         <h1><?php echo $curr_product[name]; ?>             添加至购物篮成功</h1>              <a href="cart.php">返回</a> 商品列表页面.     <?php }  else {  ?>         <h1>添加 <?php echo $curr_product[name]; ?> 到您的购物篮</h1>              <form action="<?php echo $PHP_SELF; ?>" method="post">         商品名称: <?php echo $curr_product[name]; ?>         <br>         商品说明: <?php echo $curr_product[desc]; ?>         <br>         商品单价: RMB<?php echo $curr_product[price]; ?>         <br>         商品数量: <input type="text" size="7" name="quantity">         <input type="hidden" name="id" value="<?php echo $_GET[id]; ?>">         <input type="hidden" name="ordered" value="1">         <input type="submit" value="添加至购物栏">         </form>     <?php } ?>     </body>     </html>   查看购物车的商品,代码如下: [php] view plaincopy<?php     //     // cart.php: http://www.lai18.com    //     session_start();          require 'lib.inc.php';     //判断购物篮会话变量cart是否注册,不注册则注册cart变量     if (session_is_registered('cart')) {         session_register('cart');     }          // 如果购物篮没有初始化,则初始化购物篮     if (!isset($_SESSION[cart][num_items])) {         $_SESSION[cart] = array("num_items" => 0,                       "products"  => array());     }     // From site_lib.inc, Loads the $master_products_list array     LoadProducts(); //载入物品列表     ?>    <html>     <head>         <title>演示会话跟踪的购物篮程序</title>     </head>          <body>          <h1>欢迎进入网上商店</h1>          <?php     if ($_SESSION[cart][num_items]) {  // If there is something to show     ?>     <h2>当前在购物篮里的物品</h2>     <br>     <table border="2" cellpadding="5" cellspacing="2">     <tr>         <th>             商品名称         </th>         <th>             商品说明         </th>         <th>             单价         </th>         <th>             数量         </th>         <th>                       </th>     </tr>     <?php                // Loop through the products         foreach ($_SESSION[cart][products] as $i => $product) {             $product_id = $product[0];             $quantity   = $product[1];                  $total += $quantity *                       (double)$master_products_list[$product_id][price];     ?>     <tr>         <td>             <?php echo $master_products_list[$product_id][name]; ?>         </td>         <td>             <?php echo $master_products_list[$product_id][desc]; ?>         </td>         <td>             <?php echo $master_products_list[$product_id][price]; ?>         </td>         <td>             <form action="change_quant.php" method="post">             <input type="hidden" name="id" value="<?php echo $i; ?>">             <input type="text" size="3" name="quantity"                     value="<?php echo $quantity; ?>">         </td>         <td>             <input type="submit" value="数量更改">             </form>         </td>     </tr>     <?php         }     ?>     <tr>         <td colspan="2" ALIGN="right">            <b>合计: </b>         </td>         <td colspan="2">             RMB:<?php echo $total; ?>         </td>      <td> </td>     </tr>     </table>     <br>     <br>     <?php     }     ?>          <h2>商店待出售的商品</h2>     <br>     <i>         我们提供以下商品待售:     </i>     <br>     <table border="2" cellpadding="5" cellspacing="2">     <tr>         <th>             商品名称         </th>         <th>             商品说明         </th>         <th>             单价         </th>         <th>                       </th>     </tr>     <?php         // Show all of the products         foreach ($master_products_list as $product_id => $item) {     ?>     <tr>         <td>             <?php echo $item[name]; ?>         </td>         <td>             <?php echo $item[desc]; ?>         </td>         <td>             $<?php echo $item[price]; ?>         </td>         <td>             <a href="add_item.php?id=<?php echo $product_id; ?>">                 添加至购物篮             </a>         </td>     </tr>     <?php         }          ?>     </table>   修改购物车的数量,代码如下 [php] view plaincopy<?php     //     // change_quant.php: http://www.lai18.com    //   Change the quantity of an item in the shopping cart.     //     session_start();     if (session_is_registered('cart')) {         session_register('cart');     }          // Typecast to int, making sure we access the     // right element below     $i = (int)$_POST[id];          // Save the old number of products for display     // and arithmetic     $old_num = $_SESSION[cart][products][$i][1];          if ($_POST[quantity]) {         $_SESSION[cart][products][$i][1] = $_POST[quantity]; //change the quantity     } else {         unset($_SESSION[cart][products][$i]); // Send the product into oblivion     }          // Update the number of items     $_SESSION[cart][num_items] = ($old_num >$_POST[quantity]) ?                        $_SESSION[cart][num_items] - ($old_num-$_POST[quantity]) :                        $_SESSION[cart][num_items] + ($_POST[quantity]-$old_num);     ?>          <html>     <head>         <title>             数量修改         </title>     </head>     <body>         <h1> 将数量: <?php echo $old_num; ?> 更改为              <?php echo $_POST[quantity]; ?></h1>         <a href="cart.php">返回</a> 商品列表页面.     </body>     </html>   功能页面,用户把购物车里面的内容保存到txt数据库,代码如下: [php] view plaincopy<?php     //物品数组  http://www.lai18.com    $master_products_list = array();               //载入物品数据函数     function LoadProducts() {         global $master_products_list;         $filename = 'products.txt';              $fp = @fopen($filename, "r")             or die("打开 $filename 文件失败");         @flock($fp, 1)             or die("锁定 $filename 文件失败");              //读取文件内容         while ($line = fgets($fp, 1024)) {             list($id, $name, $desc, $price) = explode('|', $line); //读取每行数据,数据以| 格开             $id = trim($id); //去掉首尾特殊符号             $master_products_list[$id] = array("name" =>  $name, //名称                                                "desc" =>  $desc, //说明                                                "price" => $price); //单价         }              @fclose($fp)  //关闭文件             or die("关闭 $filename 文件失败");     }     ?>   用了4个文件就实现用php 做好购物车功能,好了这只是一款简单的php购物车代码更复杂的需要考虑更多更好.
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

返回顶部