当前位置: 首页 > 图文教程 > 网络编程 > PHP > 仅用PHP4 Session实现的迷你购物篮(二)

PHP
php ignore_user_abort与register_shutdown_function 使用方法
PHP写MySQL数据 实现代码
phpmyadmin 访问被拒绝的真实原因
PHP 程序员也要学会使用“异常”
php MYSQL 数据备份类
PHP 类型转换函数intval
php 图像函数大举例(非原创)
PHP 输出缓存详解
PHP COOKIE设置为浏览器进程
ie6 动态缩略图不显示的原因
php 将bmp图片转为jpg等其他任意格式的图片
discuz7 phpMysql操作类
一个php Mysql类 可以参考学习熟悉下
php 分页函数multi() discuz
学习discuz php 引入文件的方法DISCUZ_ROOT
php fckeditor 调用的函数
mysql 性能的检查和优化方法
PHP 高级课程笔记 面向对象
PHP 多进程 解决难题
php 404错误页面实现代码

仅用PHP4 Session实现的迷你购物篮(二)


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 134 ::
收藏到网摘: n/a

       作者:Evert Smith 翻译:limodou
  
  片段3。创建新的篮子并向其中增加一条项目
  
  <?php
  
  // 将项目计数设为1
  $ses_basket_items=1;
  
  // 填充4个数组的第0个位置,使用从href链接传过来的值
  // 链接是在‘给你的页面增加链接’部分所讲的
  $ses_basket_name[0]=$basket;
  $ses_basket_amount[0]=1;
  $ses_basket_price[0]=$price;
  $ses_basket_id[0]=$id;
  
  // 在session中注册新的篮子
  session_register("ses_basket_items");
  session_register("ses_basket_name");
  session_register("ses_basket_amount");
  session_register("ses_basket_price");
  session_register("ses_basket_id");
  
  ?>
  
    这样将创建一个篮子,将所以的值填在数组第0个位置上,并利用session注册数组。一个篮子诞生了。
  
  
  片段4。填充篮子
  
  <?php
  
  $basket_position_counter=0; //篮子中的位置
  $double=0; //双重入口标志设为NO
  if ($ses_basket_items>0){
  // 检查是否篮子包含的项目中有双重入口
  foreach ($ses_basket_name as $basket_item){
  // 遍历数组所包含的名字,检查是否与从href所传来的相配匹
  if ($basket_item==$basket){
  // 如果在篮子中已经有了一个项目,将flag设为1
  $double=1;
  // 记住项目的位置,将进行更新
  $basket_position=$basket_position_counter;
  }
  $basket_position_counter++; //增加篮子中的实际位置
  }
  }
  
  // 更新篮子
  if ($double==1){
  // 如果项目在你的篮子中已经存在则更新在$basket_position处理的数量和位置
  $oldamount=$ses_basket_amount[$basket_position];
  $ses_basket_amount[$basket_position]++;
  $amount=$ses_basket_amount[$basket_position];
  $oldprice=$ses_basket_price[$basket_position];
  //更新价格
  $newprice=($oldprice/$oldamount)*$amount;
  $ses_basket_price[$basket_position]=$newprice;
  }else{
  // 如果它不在你的篮子中,则在数组末尾增加新的项目
  $ses_basket_name[]=$basket;
  $ses_basket_amount[]=1;
  $ses_basket_price[]=$price;
  $ses_basket_id[]=$id;
  $ses_basket_items++;
  }
  
  ?>
  
    太好了,现在你可以填充迷你购物篮并显示它了。
  
  将代码片断组织到一起
  
    让我们将代码组织到一起并且存为minibasket.inc。
  
  <?php
  
  // 记住在代码片段1中, 决定是不是要增加?
  // 让我们在这里重复它
  if ($basket!=""){
  // 在这里,项目将要加到篮中。让我们检查一下是否存在一个注册过的篮子
  if (session_is_registered("ses_basket_items")){
  // 存在一个注册过的篮子,将代码片段4放在这里。
  // 它增加项目到注册过的篮子中,检查重复记录,更新它们或在数组的最后增加项目
  } else {
  // 不存在注册过的篮子,将代码片段3放在这里。它创建一个新的篮子,并且
  // 通过session注册它。
  }
  }
  // 剩下的都是代码片段2。如果篮子中有物品时用于显示它们。
  // 加到这里。
  
  ?>
  
    瞧,不错吧。"c'est tout", 法国人会这样说。如果都做好了,你可以保存这个文件为minibasket.inc
  并且将其包括到显示商品的PHP页面中。
  
  Zip格式的minibasket.inc和basket.php
  
&n