仓酷云

标题: PHP编程:仅用PHP4 Session完成的迷你购物篮(一)... [打印本页]

作者: 透明    时间: 2015-2-4 00:28
标题: PHP编程:仅用PHP4 Session完成的迷你购物篮(一)...
在学习PHP这六个月里,每看到一个优秀的php脚本,就会兴奋的手舞足蹈,嘴里还不停的说:太酷了,太酷了。呵呵,很幼稚吧,但这可能就是兴趣。session   引见
  假如你还没有效PHP 完成你自已的购物篮,在读完这篇文章以后你应当可以创立一个了。乃至你能够已
经有了一个购物篮,我在这里所供应的一些技能能够会匡助你改良你的体系。

  我将给你一些提醒,关于若何去做或许才干削减对购物篮表的无穷的查询,或削减无穷的文本文件填充
你的文件体系,由于使用法式只会做但不会删除它们。

  假如你对这类的标题是个老手,不关键怕。它实践上相当复杂和无效,你只需求一个撑持php4的主机,
象notepad或vi之类的html编纂器,你名贵的几分种,和这个小例子。


设法
  在1998年,我有一个在硬件商铺任务的伴侣请求我为他们编写一个在线商铺。需求疾速和复杂,同时还
要有在线办理。当我发着39度高烧的时分我变得想当有创立力,所以我用perl写了谁人器材,利用minisql
作为后端。在全部处置中我拔出了我所提到的迷你购物篮。

  这个迷你购物篮与平凡的购物车只要很小的分歧,它会在每页显示你的购物车的器材,不需求在放入
一件器材后在购物车往返跳转。这就是我写这篇文章的初志。


方针
  人们喜好掌握,那末为何不给他们些通明度,以便让他们信任具有了掌握?这个迷你购物篮演示了一
个完善的办法:它供应给人们所必需的信息,而且节俭了他们一次点击,接近了在线商铺的3击典范。

  所以,方针就是在任什么时候候将这个迷你购物篮显示为你的页面上的一局部,在开头处供应一个摘要用以
修正购物篮中的物品,接着在最初发送一个定单。

请求
  你应当晓得甚么是session。假如不晓得,这里有一个疾速的大纲。已有良多文章关于这个话题,你
可以从中找到一切你需求的代码例子。在你的入手下手页面翻开一个session,利用

<?php

session_start();

?>

  如许将创立一个session名字和一个session id。你如今既可使用缺省的经由过程基于cookie的设置session
的体例,经由过程一个表单来传递session id,或把它作为一个变量附在你的链接上(get办法)的办法。不要忘
记在最初释放session。:)

  你的商品应当有一个名字,价钱和独一标识,以便能用在这个例子中,假如不如许,你能够需求做一点
修正。这里我利用mysql作为后端以便创立页面及其它,为了让购物能任务这不是必需的。:)

  你应当懂得数组。如今假如有人有工夫使用我的代码而且创立一个它的类,我天经地义地要感谢失掉它。

界说
  为了简化这个例子,我利用了四个自力的数组和一些额定的变量。代码可以被优化。如许可以很轻易地
显示设法和浏览代码。可使用类更好的完成,然而我不克不及非常一定是不是可以把对象保留到session 里。有
人想对此宣布评论吗?

  咱们还需求一个项目计数器。固然可使用count() 号令来完成,我只不外以为它足够好,以便总能知
道有几何的项目,而且它也为轮回供应了一个好的计数器。

任务
  让咱们假定在你的HTML页中有一个商品列表

ID Name Price
1 Mouse 25.00 add
2 Key 100.00 add
3 Car 5000.00 add
4 Game 25.00 add

向你的页面增添链接

  下面的'add'字段应当是一个链接,用来将商品放到迷你购物篮中。利用$PHP_SELF将这个链接指向它自
已。然后向它增添商品信息。这里是商品1的例子。

<A HREF="<?echo $PHP_SELF;?>?id=1&price=25&basket=Mouse">add</A>

  商品的称号可以包括空格,所以将它放在链接的最初。Get办法好象对这个很抉剔。

筹办迷你购物篮

  为了代码重用,让咱们创立一个额定的文件minibasket.inc。我利用.inc扩大名来标识我的包含文件。
利用这个内部文件的缘由是,虽然你将利用session变量来传递给购物篮,代码依然需求无效。这个文件将
包括显示迷你购物篮的代码,也包话增添项目标函数。完成它的最好的中央是将 <?php include ("minibasket.inc"); ?> 号令放在你需求的中央。

minibasket.inc的逻辑

  花些工夫思索一下这个。迷你购物篮应当是个甚么模样,它需求些甚么特征?这里显示的迷你购物篮应
该看上去象如许:

# Name Price
1 Mouse 25.00
3 Game 75.00
Total 100.00

  你可以很轻易的经由过程利用一个内部款式表格局化这个输入。可是,它不该该太大。这个迷你购物篮是一
个信息,但是它不该该成为你所显示页面的核心。

  这个文件的逻辑十分复杂。

反省是不是需求增添一个新的项目。
假如true,增添项目
在到场中,它要反省复重的纪录,经由过程更新数目和价钱来更新存在的纪录。
片断1。反省将要增添的新的项目

  这是一个正常的IF语句,用于反省$basket变量的值。

<?php

if ($basket!=""){
//向篮子中到场项目
}

?>

片断2。在阅读器中显示篮子

<?php

if ($ses_basket_items>0){
// 假如在篮子中有项目
for ($basket_counter=0;$basket_counter<$ses_basket_items;$basket_counter++){
// 遍历篮子,打印出每行
// 你固然可以用格表来格局化显示
// 需求经由过程格局化来显示价钱的分值。假如没有格局化,则.00是不会显示出来的
$price=sprintf("%01.2f",$ses_basket_price[$basket_counter]);
$amount=$ses_basket_amount[$basket_counter];
$name=$ses_basket_name[$basket_counter];
echo "$amount $name $price";
echo "<BR>\n";
}
} else {
// 在篮子中没有商品
// 设置项目计数为0,且排除一切的变量
// 这是一个排除处置。它避免人们失掉旧的数组
$ses_basket_items=0;
unset($ses_basket_name);
unset($ses_basket_amount);
unset($ses_basket_price);
unset($ses_basket_id);
}

?>

  这段代码不会发生任何了局。项目还没有被填充,篮子老是空的,所以篮子不会被显示。那末让咱们向
这个篮子中加些项目吧。


  不过还好,PHP语言给出的语法错误很详细,只要稍微熟悉一点之后,看错误提示就能很容易找出错误所在的。PHP还有一个特别好用的调试功能,在PHP语句中,你可以随时用echo来输出结果。
作者: 若相依    时间: 2015-2-4 13:12
,熟悉html,能用div+css,还有javascript,优先考虑linux。我在开始学习的时候,就想把这些知识一起学习,我天真的认为同时学习能够互相呼应,因为知识是相通的。
作者: 飘飘悠悠    时间: 2015-2-9 23:10
写js我最烦的就是 ie 和 firefox下同样的代码 结果显示的结果千差万别,还是就是最好不要用遨游去调试,因为有时候遨游是禁用js的,有可能代码是争取结果被遨游折腾的认为是代码写错。
作者: 再见西城    时间: 2015-2-10 22:59
当留言板完成的时候,下步可以把做1个单人的blog程序,做为目标,
作者: 再现理想    时间: 2015-3-1 17:04
使用 jquery 等js框架的时候,要随时注意浏览器的更新情况,不然很容易发生框架不能使用。
作者: 若天明    时间: 2015-3-10 21:13
在我安装pear包的时候老是提示,缺少某某文件,才发现 那群extension 的排列是应该有一点的顺序,而我安装的版本的排序不是正常的排序。没办法我只好把那群冒号加了上去,只留下我需要使用的扩展。
作者: 不帅    时间: 2015-3-17 09:59
没接触过框架的人,也不用害怕,其实框架就是一种命名规范及插件,学会一个框架其余的框架都很好上手的。
作者: 小魔女    时间: 2015-3-18 13:09
小鸟是第一次发帖(我习惯潜水的(*^__^*) 嘻嘻……),有错误之处还请大家批评指正,另外,前些日子听人说有高手能用php写驱动程序,真是学无止境,人外有人,天外有天。
作者: 精灵巫婆    时间: 2015-3-20 09:35
先学习php和mysql,还有css(html语言很简单)我认为现在的效果比以前的方法好。
作者: 柔情似水    时间: 2015-4-4 04:03
再就是混迹于论坛啦,咱们的phpchina的论坛就很强大,提出的问题一般都是有达人去解答的,以前的帖子也要多看看也能学到不少前辈们的经验。别的不错的论坛例如php100,javaeye也是很不错的。
作者: 飘灵儿    时间: 2015-4-10 22:19
环境搭建好,当你看见你的浏览器输出“it works\\\\\\\"时你一定是喜悦的。在你解决问题的时候,我强烈建议多读php手册。
作者: 谁可相欹    时间: 2015-4-12 08:32
在学习的过程中不能怕麻烦,不能有懒惰的思想。学习php首先应该搭建一个lamp环境或者是wamp环境。这是学习php开发的根本。虽然网络上有很多集成的环境,安装很方便,使用起来也很稳定、
作者: 山那边是海    时间: 2015-4-22 09:55
首先我是坚决反对新手上来就用框架的,因为对底层的东西一点都不了解,造成知识上的真空,会对以后的发展不利。我的观点上手了解下框架就好,代码还是手写。当然啦如果是位别的编程语言的高手的话,这个就另当别论啦。
作者: 乐观    时间: 2015-5-3 03:19
最后祝愿,php会给你带来快乐的同时 你也会给他带来快乐。
作者: 海妖    时间: 2015-5-4 07:49
首先我是坚决反对新手上来就用框架的,因为对底层的东西一点都不了解,造成知识上的真空,会对以后的发展不利。我的观点上手了解下框架就好,代码还是手写。当然啦如果是位别的编程语言的高手的话,这个就另当别论啦。
作者: 透明    时间: 2015-6-19 21:53
写的比较杂,因为我也是个新手,不当至于大家多多指正。
作者: 老尸    时间: 2015-6-30 17:32
首推的搜索引擎当然是Google大神,其次我比较喜欢 百度知道。不过搜出来的结果往往都是 大家copy来copy去的,运气的的概率很大。
作者: 兰色精灵    时间: 2015-7-10 12:08
兴趣是最好的老师,百度是最好的词典。
作者: 深爱那片海    时间: 2015-7-12 08:07
写的比较杂,因为我也是个新手,不当至于大家多多指正。
作者: 只想知道    时间: 2015-7-13 20:12
做为1门年轻的语言,php一直很努力。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2