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

PHP
让我们来编写一些PHP实用的脚本
七种缓存使用武器 为网站应用和访问加速
动态网页PHP中引用&的使用注意事项
在PHP中全面阻止SQL注入式攻击
PHP自带可以代替echo调试的unit函数
小结:PHP动态网页程序优化及高效提速问题
php对特殊语句查询结果进行数组排序
实例:用PHP技术解决网站URL格式过长的问题
小结:PHP动态网页程序两个有用的小技巧
动态网页中直接不让访问PHP程序文件
网页实例:详细介绍用PHP来编写网页记数器
菜鸟学习:动态网页PHP基础学习笔记
利用Apache实现禁止图片盗链
PHP编程中常用的三则技巧
PHP制作的网站意见在线反馈表
大型Web需求解决方案 PHP定位突出
PHP实例:精确到每一秒钟的在线人数显示代码
实用:动态网页制作技术PHP的十个应用技巧
常见php页面漏洞分析及相关问题解决
PHP和MYSQL制作动态网站开发经验之谈

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 27 ::
收藏到网摘: 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