1,速度不会很慢,如果该网上销售系统100人同时在线的话,对数据库的并发访问只有10个左右,完全可以满足要求。
2,当用户第一次使用购物车时候,建立session,将其保存在数据库中,以后的操作均基于该session。
如果不用session,恐怕只能用cookie了,否则诸如“用机器名+ip”这样的方式都不够安全,且很难实现

解决方案 »

  1.   

    我还是以为session是最方便的你的session常出问题 先检查一下服务器端有关session的设置参数用数据库的临时表也可以  操作上麻烦了一点  用IP不能分辩局域网的用户  看看能不能取到用户的MAC地址
      

  2.   

    我还是以为session是最方便的你的session常出问题 先检查一下服务器端有关session的设置参数用数据库的临时表也可以  操作上麻烦了一点  用IP不能分辩局域网的用户  看看能不能取到用户的MAC地址
      

  3.   

    如果能让服务器认识你的购买客户的话,SESSION你无法逃避要使用(COOKIE存放到了客户机器上,返回的数据你是否那么确认是正确的呢?是否被篡改过呢?) SESSION做购物车,我觉得很好,使用数据库我觉得你在舍易求繁
      其实你根本不用在意SESSION什么,说白了你要操作的仅仅是一个数组,只不过这个数组保存是使用了SESSION
      

  4.   

    我本机的Session也是这样,不正常,我把我的购物车程序粘出来,请大家看看,有时又很好不知道总是出在哪儿?
    <?
    //传入值id(自动编号),name_en(中文名),pid(产品编号)
    // 此文件中需要的变量
    // basket 产品种数
    // b_id   自动编号
    // b_name 名称
    // b_pid  产品编号
    // b_num  数量require("../php/class.FastTemplate.php3");
    $tpl=new FastTemplate(".");
    $tpl->define(array(cars=>"basket.html",nocars=>"nobasket.html"));session_start();
    session_register("null");
    $null=false;switch($op) {
    case "clear":  //清除所有产品
    $basket=0;
    unset($basket);//产品种数
    unset($b_id);  //记录每种产品的自动编号
    unset($b_name);//记录每种产品的英文名称
    unset($b_pid); //记录每种产品的编号
    unset($b_num); //记录每种产品的数量
    break; case "delete":  //删除一种产品
    $b_num[$id]=0;
    $basket--;
    break; case "update":  //更新数量
    for($i=0;$i<$basket;$i++)
    {
    if(intval($bid[$i])==0) continue;
    $b_num[$i]=$bid[$i];
    }
    break; case "pay":
    header("location:index.php?op=pay");
    break; default:
    $op="register";
    break;
    }if($op=="register")
    {
    if(session_is_registered("basket"))  //假若蓝中已有产品
      {
    for($i=0;$i<$basket;$i++)
    if($b_id[$i]==$id)  //假若蓝中当前产品自动编号等于此产品自动编号,则数量加1
    {
    $b_num[$i]++;
    break;
    } if($i>=$basket) //增加一种产品
        {
    $b_id[$i]=$id;
    $b_name[$i]=$name_en;
    $b_num[$i]=1;
    $b_pid[$i]=$pid;
    $basket++;
    }
      }
      else       //假若蓝中还没有产品
      {
    // 在session中注册新的篮子
    session_register("basket");
    session_register("b_id");
    session_register("b_name");
    session_register("b_num");
    session_register("b_pid");

    $basket=1;   //产品种数设为1
    $b_id[0]=$id;
    $b_name[0]=$name_en;
    $b_num[0]=1;
    $b_pid[0]=$pid;
    }
    }// 如果篮子中有物品时用于显示它们。
    if ($basket>0)
    {
    for($i=0;$i<$basket;$i++)
      {
    if ($b_num[$i]> 0)
    {
    $null=true;
    $id=$b_id[$i];
    $num=$b_num[$i];
    $name=$b_name[$i];
    $pid=$b_pid[$i];
    $body.="
    <TR>
       <TD>&nbsp;$pid</TD>
       <TD>$name</TD>
       <TD><input type=text name=bid[$i] value=$num></TD>
       <TD>
                <div align=center><a href=\"javascript:if (confirm('真的不买 [".$name."] 了吗?'))window.location='basket.php?op=delete&id=$i'\"><B><font color=red>删除</font></B></a></div>
       </TD>
      </TR>";
    }
    }
    }if($null==false)
    {
    $tpl->parse(OUTPUT,nocars);
    }
    else
    {
    $tpl->assign(BODY,$body);
    $tpl->parse(OUTPUT,cars);
    }
    $tpl->FastPrint(OUTPUT);
    ?>
      

  5.   

    1、仅用session保存购物车,无论用户是否注册session都可以将该用户信息保留到用户离开你的网站
    2、只有在成交时才需要把相关资料存入数据库
      

  6.   

    1、仅用session保存购物车,无论用户是否注册session都可以将该用户信息保留到用户离开你的网站
    2、只有在成交时才需要把相关资料存入数据库
      

  7.   

    1、仅用session保存购物车,无论用户是否注册session都可以将该用户信息保留到用户离开你的网站
    2、只有在成交时才需要把相关资料存入数据库
      

  8.   

    http://www.phpe.net/class/46.shtml一个购物车得类