深入PHP购物车模块功能分析(函数讲解,附源码)(2)


<?php 
 session_start();  //初始化session变量
 session_register("goodsid"); //定义session变量用于存储商品ID
 session_register("goodsnum"); //定义session变量用于存储购买商品的数量
?>


session_register()函数,在整个域范围内增加一个Session变量。语法:boolean session_register(string name);
参数name用于指定新Session变量的名称。
4,通过数组函数判断购物车是否存在指定商品
为了避免在购物车中出现商品的重复添加,要对添加的商品与购物车中存储的商品进行判断。
a)应用explode()函数,将goodsid变量中存储的字符串以@为分隔符转换到数组中。
explode()函数,返回由字符串组成的数组,其中的每个元素都是由separator作为边界点分割出来的子字符串。
语法:array explode(string separator,string string,[ing limit])
参数说明:
separator:必须,规定在哪里分割字符串。不能为空字符串,否则explode()返回FALSE
string:必须,要分割的字符串。limit:可选,规定所返回的数组元素的最大数目。如果设置了limit参数,则返回的数组包含最多limit个元素,而最后那个元素将包含string的剩余部分。如果limit参数是负数,则返回除了最后的-limit个元素之外的所有元素。

b)in_array()函数判断数组中是否存在指定的商品ID,如果存在,则说明商品已经在购物车中;否则商品不存在,则将商品的ID添加到购物车中。

in_inarray()函数在数组中搜索给定的值。如果找到则返回True,否则返回False。
语法:bool in_array(mixed value,array array[,bool type])
参数说明:
value:必须,规定要在数组中搜索的值
array:必须,规定要搜索的数组。
type:可选,如果设置为true,则检查搜索的数据与数组的类型是否相同。
在购物车模块中,判断购物车中是否存在指定的商品的代码如下:

复制代码 代码如下:


<?php 
 session_start(); //初始化session变量
 session_register("goodsid"); //定义session变量用于存储商品ID
 session_register("goodsnum"); //定义session变量用于存储购买商品的数量
 if($_SESSION["goodsid"]=="" && $_SESSION["goodsnum"]==""){ //判断session变量是否为空
  $_SESSION["goodsid"]=$_GET["id"]."@"; //如果session变量为空,则为其赋值为商品的ID,并以@分隔
  $_SESSION["goodsnum"]="1@";  //如果session变量为空,则为其赋值为1,并以@分隔
 }else{ //如果session变量不为空
   $array=explode("@",$_SESSION["goodsid"]); //则以@为分隔符,将session变量中的数据写入到数组中
   if(in_array($_GET["id"],$array)){ //如果判读数组中是否存在指定的ID
     echo "<script>alert('该商品已经被放入购物车!');history.back();</script>";
     exit;
   }
  //如果数组中不存在指定的ID,则说明该商品还没有放入购物车中
  $_SESSION["goodsid"].=$_GET["id"]."@"; //将该商品添加到购物车中
  $_SESSION["goodsnum"].="1@"; //更改商品数量
 }
 echo "<script>window.location.href='shopping_car.php';</script>";
?>


5,验证输入商品数量值是否有效
在preg_match()函数中,判断提交的商品数量的值是否符合正则表达式的标准,如果符合则有效,否则将给出提示信息。程序关键代码如下:

复制代码 代码如下:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/28bfed3d58053c2b1d7741743b5d9ca7.html