0

0

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

php中文网

php中文网

发布时间:2016-06-21 09:14:54

|

1382人浏览过

|

来源于php中文网

原创

session

介绍
  如果你还没有用PHP 实现你自已的购物篮,在读完这篇文章之后你应该可以创建一个了。甚至你可能已
经有了一个购物篮,我在这里所提供的一些技巧可能会帮助你改善你的系统。

  我将给你一些提示,关于如何去做也许才能减少对购物篮表的无限的查询,或减少无限的文本文件填充
你的文件系统,因为应用程序只会做但不会删除它们。

  如果你对这类的题目是个新手,不要害怕。它实际上相当简单和有效,你只需要一个支持php4的主机,
象notepad或vi之类的html编辑器,你宝贵的几分种,和这个小例子。


想法
  在1998年,我有一个在硬件商店工作的朋友要求我为他们编写一个在线商店。需要快速和简单,同时还
要有在线管理。当我发着39度高烧的时候我变得想当有创建力,所以我用perl写了那个东西,使用minisql
作为后端。在整个处理中我插入了我所提到的迷你购物篮。

  这个迷你购物篮与平常的购物车只有很小的不同,它会在每一页显示你的购物车的东西,不需要在放入
一件东西后在购物车来回跳转。这就是我写这篇文章的初衷。


目标
  人们喜欢控制,那么为什么不给他们些透明度,以便让他们相信拥有了控制?这个迷你购物篮演示了一
个完美的方法:它提供给人们所必须的信息,并且节省了他们一次点击,接近了在线商店的3击范例。

  所以,目标就是在任何时候将这个迷你购物篮显示为你的页面上的一部分,在结尾处提供一个摘要用以
修改购物篮中的物品,接着在最后发送一个订单。

要求
  你应该知道什么是session。如果不知道,这里有一个快速的纲要。已经有很多文章关于这个话题,你
可以从中找到所有你需要的代码例子。在你的开始页面打开一个session,使用


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的例子。

add

  商品的名称能够包含空格,所以将它放在链接的最后。Get方法好象对这个很挑剔。

准备迷你购物篮

  为了代码重用,让我们创建一个额外的文件minibasket.inc。我使用.inc扩展名来标识我的包括文件。
使用这个外部文件的原因是,尽管你将使用session变量来传递给购物篮,代码仍然需要有效。这个文件将
包含显示迷你购物篮的代码,也包话增加项目的函数。实现它的最好的地方是将 命令放在你需要的地方。

minibasket.inc的逻辑

  花些时间考虑一下这个。迷你购物篮应该是个什么样子,它需要些什么特性?这里显示的迷你购物篮应
该看上去象这样:

# Name Price
1 Mouse 25.00
3 Game 75.00
Total 100.00

  你可以很容易的通过使用一个外部样式表格式化这个输出。可是,它不应该太大。这个迷你购物篮是一
个信息,然而它不应该成为你所显示页面的焦点。

  这个文件的逻辑非常简单。

检查是否需要增加一个新的项目。
如果true,增加项目
在加入中,它要检查复重的记录,通过更新数量和价格来更新存在的记录。
片段1。检查将要增加的新的项目

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


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

?>

片段2。在浏览器中显示篮子


if ($ses_basket_items>0){
// 如果在篮子中有项目
for ($basket_counter=0;$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 "
\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怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
go语言 注释编码
go语言 注释编码

本专题整合了go语言注释、注释规范等等内容,阅读专题下面的文章了解更多详细内容。

32

2026.01.31

go语言 math包
go语言 math包

本专题整合了go语言math包相关内容,阅读专题下面的文章了解更多详细内容。

23

2026.01.31

go语言输入函数
go语言输入函数

本专题整合了go语言输入相关教程内容,阅读专题下面的文章了解更多详细内容。

16

2026.01.31

golang 循环遍历
golang 循环遍历

本专题整合了golang循环遍历相关教程,阅读专题下面的文章了解更多详细内容。

5

2026.01.31

Golang人工智能合集
Golang人工智能合集

本专题整合了Golang人工智能相关内容,阅读专题下面的文章了解更多详细内容。

6

2026.01.31

2026赚钱平台入口大全
2026赚钱平台入口大全

2026年最新赚钱平台入口汇总,涵盖任务众包、内容创作、电商运营、技能变现等多类正规渠道,助你轻松开启副业增收之路。阅读专题下面的文章了解更多详细内容。

268

2026.01.31

高干文在线阅读网站大全
高干文在线阅读网站大全

汇集热门1v1高干文免费阅读资源,涵盖都市言情、京味大院、军旅高干等经典题材,情节紧凑、人物鲜明。阅读专题下面的文章了解更多详细内容。

195

2026.01.31

无需付费的漫画app大全
无需付费的漫画app大全

想找真正免费又无套路的漫画App?本合集精选多款永久免费、资源丰富、无广告干扰的优质漫画应用,涵盖国漫、日漫、韩漫及经典老番,满足各类阅读需求。阅读专题下面的文章了解更多详细内容。

170

2026.01.31

漫画免费在线观看地址大全
漫画免费在线观看地址大全

想找免费又资源丰富的漫画网站?本合集精选2025-2026年热门平台,涵盖国漫、日漫、韩漫等多类型作品,支持高清流畅阅读与离线缓存。阅读专题下面的文章了解更多详细内容。

85

2026.01.31

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

相关下载

更多

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Laravel 5.8 中文文档手册
Laravel 5.8 中文文档手册

共74课时 | 89.3万人学习

SESSION实现登录与验证
SESSION实现登录与验证

共10课时 | 9.7万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号