兰色精灵 发表于 2015-2-4 00:25:37

PHP教程之一个用session完成微型购物篮的例子

PHP原始为Personal Home Page的缩写,已经正式更名为 "PHP: Hypertext Preprocessor"。注意不是“Hypertext Preprocessor”的缩写,这种将名称放到定义中的写法被称作递归缩写。session   采于www.phpbuilder.com,稍作增补。代码以下。嘻嘻:)
basket.php:
<?php
include ("evert.inc");
?>
<PRE>
ID    Name    Price
1   Mouse   25.00 <A HREF="<?echo $PHP_SELF; ?>?act=add&id=1&price=25&basket=Mouse">add</A><A HREF="<?echo $PHP_SELF; ?>?act=subtract&id=1&price=25&basket=Mouse">subtract</A>
2   Key    100.00 <A HREF="<?echo $PHP_SELF; ?>?act=add&id=2&price=100&basket=Key">add</A><A HREF="<?echo $PHP_SELF; ?>?act=subtract&id=2&price=100&basket=Key">subtract</A>
3   Car   5000.00 <A HREF="<?echo $PHP_SELF; ?>?act=add&id=3&price=5000&basket=Car">add</A><A HREF="<?echo $PHP_SELF; ?>?act=subtract&id=3&price=5000&basket=Car">subtract</A>
4   Game    25.00 <A HREF="<?echo $PHP_SELF; ?>?act=add&id=4&price=25&basket=Game">add</A><A HREF="<?echo $PHP_SELF; ?>?act=subtract&id=4&price=25&basket=Game">subtract</A>
</PRE>
<a href="<?echo $PHP_SELF;?>?logout=1">Logout</a>


evert.inc:
<?php
session_start();
if($logout){
session_destroy();
unset($ses_basket_name);
unset($ses_basket_amount);
unset($ses_basket_price);
unset($ses_basket_id);
unset($ses_basket_items);
}
if ($basket!=""){
                if (session_is_registered("ses_basket_items")){
                $basket_position_counter=0;
                $double=0;

                if ($ses_basket_items>0){
                   foreach ($ses_basket_name as $basket_item){
                      if ($basket_item==$basket){
                         $double=1;
                         $basket_position=$basket_position_counter;

                      }
                      $basket_position_counter++;
                   }
                }
            if ($double==1){
                $oldamount=$ses_basket_amount[$basket_position];
                if($act=="add")
                  $ses_basket_amount[$basket_position]++;
                else{
                  $ses_basket_amount[$basket_position]--;
                  if($ses_basket_amount[$basket_position]<0)
                     $ses_basket_amount[$basket_position]=0;
                  }
               $amount=$ses_basket_amount[$basket_position];
               $oldprice=$ses_basket_price[$basket_position];
               $newprice=$oldamount>0?($oldprice/$oldamount)*$amount:$price;
               $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++;
                   }
      }else{
                $ses_basket_items=1;
                $ses_basket_name=$basket;
                $ses_basket_amount=1;
                $ses_basket_price=$price;
                $ses_basket_id=$id;
                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");
      }
}

if ($ses_basket_items>0){
   for ($basket_counter=0;$basket_counter<$ses_basket_items;$basket_counter++){
      $price=sprintf("%01.2f",$ses_basket_price[$basket_counter]);
      $amount=$ses_basket_amount[$basket_counter];
      $name=$ses_basket_name[$basket_counter];
      if($amount>0){
      echo "$amount $name $price";
      echo "<BR>\n";
      }
   }
} else {
      $ses_basket_items=0;
      unset($ses_basket_name);
      unset($ses_basket_amount);
      unset($ses_basket_price);
      unset($ses_basket_id);
}

?>

总的来说,在这一个月左右的时间中,学到的不少,但是也遇到不少的问题,比如批量图片的上传,一直到现在也不懂,如何实现动态的增加上传图片的数量。

飘灵儿 发表于 2015-2-4 13:06:01

首先声明:我是一个菜鸟,是一个初学者。学习了一段php后总是感觉自己没有提高,无奈。经过反思我认为我学习过程中存在很多问题,我改变了学习方法后自我感觉有了明显的进步。

蒙在股里 发表于 2015-2-6 16:30:40

php是动态网站开发的优秀语言,在学习的时候万万不能冒进。在系统的学习前,我认为不应该只是追求实现某种效果,因为即使你复制他人的代码调试成功,实现了你所期望的效果,你也不了解其中的原理。

简单生活 发表于 2015-2-17 06:45:56

在学习的过程中不能怕麻烦,不能有懒惰的思想。学习php首先应该搭建一个lamp环境或者是wamp环境。这是学习php开发的根本。虽然网络上有很多集成的环境,安装很方便,使用起来也很稳定、

因胸联盟 发表于 2015-2-24 23:27:47

使用zendstdio 写代码的的时候,把tab 的缩进设置成4个空格是很有必要的

只想知道 发表于 2015-2-27 04:01:43

找到的的资料很多都是在论坛里的,需要注册,所以我一般没到一个论坛都注册一个id,所有的id都注册成一样的,这样下次再进来的时候就不用重复注册啦。当然有些论坛的某些资料是需要的付费的。

精灵巫婆 发表于 2015-3-2 11:21:17

对于初学者来说不推荐去拿钱买的。当然如果一个网站你经常去用,而且里面的资料也比较有用,最好还是买个会员比较好,毕竟那些也是别人的工作成果。

乐观 发表于 2015-3-11 03:22:38

学好程序语言,多些才是王道,写两个小时代码的作用绝对超过看一天书,这个我是深有体会(顺便还能练打字速度)。

兰色精灵 发表于 2015-3-11 18:11:26

为了以后维护的方便最好是代码上都加上注释,“予人方便,自己方便”。此外开发文档什么的最好都弄齐全。我觉得这是程序员必备的素质。虽然会消耗点很多的时间。但是确实是非常有必要的。

飘飘悠悠 发表于 2015-3-16 21:03:04

当留言板完成的时候,下步可以把做1个单人的blog程序,做为目标,

再现理想 发表于 2015-3-23 00:59:05

这些中手常用的知识,当你把我说的这些关键字都可以熟练运用的时候,你可以选择自己

愤怒的大鸟 发表于 2015-3-24 00:53:23

因为blog这样的可以让你接触更多要学的知识,可以接触用到类,模板,js ,ajax

不帅 发表于 2015-4-3 04:31:52

兴趣是最好的老师,百度是最好的词典。

活着的死人 发表于 2015-4-12 16:24:48

学习php的目的往往是为了开发动态网站,phper就业的要求也涵盖了很多。我大致总结为:精通php和mysql

金色的骷髅 发表于 2015-4-15 07:16:10

本人接触php时间不长,算是phper中的小菜鸟一只吧。由于刚开始学的时候没有名师指,碰过不少疙瘩,呗很多小问题卡过很久,白白浪费不少宝贵的时间,在次分享一些子的学习的心得。

小女巫 发表于 2015-4-16 23:13:10

其实没啥难的,多练习,练习写程序,真正的实践比看100遍都有用。不过要熟悉引擎

莫相离 发表于 2015-4-24 00:28:05

Apache不是非得用80或者8080端口的,我刚开始安得时候就是80端口老占用,就用了个 81端口,结果照常,就是输localhost的时候,应该输入为 localhost:81

深爱那片海 发表于 2015-5-10 20:30:53

写js我最烦的就是 ie 和 firefox下同样的代码 结果显示的结果千差万别,还是就是最好不要用遨游去调试,因为有时候遨游是禁用js的,有可能代码是争取结果被遨游折腾的认为是代码写错。

老尸 发表于 2015-6-6 21:12:40

小鸟是第一次发帖(我习惯潜水的(*^__^*) 嘻嘻……),有错误之处还请大家批评指正,另外,前些日子听人说有高手能用php写驱动程序,真是学无止境,人外有人,天外有天。
页: [1]
查看完整版本: PHP教程之一个用session完成微型购物篮的例子