./flow.php (购物流程)

简介: 19 require(ROOT_PATH . 'includes/lib_order.php'); 购物流程函数库 22 require_once(ROOT_PATH . 'languages/' .
19 require(ROOT_PATH . 'includes/lib_order.php'); 购物流程函数库
22 require_once(ROOT_PATH . 'languages/' .$_CFG['lang']. '/shopping_flow.php'); 载入语言文件
28-31 默认act为购物车
38 获取flow页面动态显示内容
1819 处理默认$_REQUEST['step']
1822 $_SESSION['flow_type'] = CART_GENERAL_GOODS; 设置购物流程为普通购物流程
1825-1829
if ($_CFG['one_step_buy'] == '1')
    {
        ecs_header("Location: flow.php?step=checkout\n"); 如果设置$_CFG['one_step_buy'] == '1',直接退出,一般$_CFG['one_step_buy']设置为0
设置方法在数据库中ecs_shop_config表中
        exit;
    }
1832 $cart_goods = get_cart_goods(); 取得购物车商品,计算合计 get_cart_goods() 在./includes/lib_order.php中定义1433
//--------------------------------------------------------------------------
48 if ($_REQUEST['step'] == 'add_to_cart') 增加商品
54 $_POST['goods'] = json_str_iconv($_POST['goods']); 转码
56-64 检查商品ID和post的goods字符串,包括商品规格,id,商品数量
66 $result = array('error' => 0, 'message' => '', 'content' => '', 'goods_id' => '');初始化返回数组
69-73 检查goods
75 $goods = $json->decode($_POST['goods']); 解码
78-94 检查商品规格
97-100 一步式购物处理
111-134 添加购物商品
//---------------------------------------------------------------------------
elseif ($_REQUEST['step'] == 'link_buy') (选择付款方式,不确定)
135-145 判断商品是否在购物车中如果不存在则加入,然后重定向./flow.php
//-----------------------------------------------------------------------------
146 elseif ($_REQUEST['step'] == 'login')
153-178 处理get请求(即显示登陆页面)
184-200 if (($captcha & CAPTCHA_LOGIN) && (!($captcha & CAPTCHA_LOGIN_FAIL) || (($captcha & CAPTCHA_LOGIN_FAIL) && $_SESSION['login_fail'] > 2)) && gd_version() > 0)
$captcha 值为12,CAPTCHA_LOGIN为2 , $captcha & CAPTCHA_LOGIN值为0 ,所以不必处理验证码
202-219 登陆处理,登陆成功后更新用户信息从新计算购物车的商品价格,如果该用户购物车中有商品,跳转到结算页面,否则跳转到主页
220-222 登陆失败处理
226-250 注册处理
228 if ((intval($_CFG['captcha']) & CAPTCHA_REGISTER) && gd_version() > 0) ((intval($_CFG['captcha']) & CAPTCHA_REGISTER) 值为0 所以不必处理验证码
245-254 如果注册成功跳转到flow.php?step=consignee页面,否则提示错误
//----------------------------------------------------------------------------
267 elseif ($_REQUEST['step'] == 'consignee') 收货人信息
284-286 获取区域信息
289-298 获取同一session的收货人信息
301-307 如果session中用户id为0时获取在session中收货人信息
312-328 确定各区域选中状态
333-370 保存收货人信息,并写到$_SESSION['flow_consignee']
跳转到Location: flow.php?step=checkout
//----------------------------------------------------------------------------
371 elseif ($_REQUEST['step'] == 'drop_consignee') 删除收货人信息
//---------------------------------------------------------------------------
390 elseif ($_REQUEST['step'] == 'checkout') 定单确认
406-413 判断购物车中是否有商品
420-425 获取默认收货地址,检查session中默认收货地址和用户标识
427-435 保证收货人信息完整,并写入session
441 $cart_goods = cart_goods($flow_type); // 取得商品列表,计算合计

原文:http://hi.baidu.com/liehu1119/blog/item/6541aadd93dcbe335882dd66.html
相关文章
|
3月前
|
安全 关系型数据库 MySQL
PHP手术麻醉临床信息管理系统源码 术前、术中、术后全流程管理
麻醉文书是用于管理患者手术全过程的文书。 麻醉同意:医院麻醉知情同意书的填写和编辑; 病案查询:可以通过搜索框搜索患者查询病案; 申请手术:手术申请单的填写和打印; 风险评估:医院手术风险评估表的书写和编辑。
43 0
|
8月前
|
关系型数据库 MySQL 应用服务中间件
Mac PHP-Nginx-Mysql 本地开发日常启动流程
Mac PHP-Nginx-Mysql 本地开发日常启动流程
42 1
|
PHP 开发工具
PHP对接苹果支付全流程
PHP对接苹果支付全流程
768 0
PHP对接苹果支付全流程
|
5天前
|
前端开发 JavaScript 测试技术
【PHP开发专栏】PHP Web开发基础与流程
【4月更文挑战第29天】本文介绍了PHP Web开发的基础和流程,帮助初学者入门。内容包括Web服务器与PHP解释器的工作原理、HTML/CSS/JavaScript基础知识、PHP语法与数据库操作。开发流程涵盖项目规划、环境搭建、数据库设计、代码编写、测试与调试,以及部署与维护。此外,文中还强调了使用框架、代码组织、安全性及性能优化等进阶知识和最佳实践,旨在培养优秀PHP开发者。
|
5月前
|
安全 关系型数据库 MySQL
【PHP】医院HIS手术麻醉临床信息管理系统源码 实现术前、术中、术后全流程管理
【PHP】医院HIS手术麻醉临床信息管理系统源码 实现术前、术中、术后全流程管理
49 0
|
7月前
|
前端开发 JavaScript API
php的短信验证的流程,如何实现前端js加后端php
php的短信验证的流程,如何实现前端js加后端php
|
11月前
|
SQL 算法 IDE
【web 开发基础】PHP 中的特殊流程控制(exit) -PHP 快速入门 (22)
当前的脚本中只要执行到exit语句,无论它是在哪个结构中,都会直接退出当前脚本。exit()是一个函数,exit()是die()函数的别名,它可以带有一个参数输出一条消息作为提示,并退出当前脚本。比如:我们通常在连接数据库、选择数据库,以及执行SQL语句中如果有失败的环节,则可以使用3种方式输出错误消息,并退出脚本。
73 0
|
12月前
|
SQL Web App开发 设计模式
PHP代码审计系列(一) 基础:方法、思路、流程
PHP代码审计系列(一) 基础:方法、思路、流程
370 0
|
PHP
【web 开发基础】PHP 中的特殊流程控制(continue) -PHP 快速入门 (21)
continue语句只能用于循环语句内部,功能是跳过本次循环继续执行下一次循环结构,而不终止整个循环的执行。在while和do...while语句中,continue语句跳转到循环条件处开始继续执行,对于for循环随后的动作是变量更新。
83 0
|
PHP
【web 开发基础】PHP中的特殊流程控制(break) -PHP 快速入门 (20)
我们在介绍while和for循环的时候,都是通过循环语句本身提供的条件表达式来指定循环的次数,或者是遇到特殊情况要停止循环。如果想在循环体执行过程中终止循环,或是跳过一些循环继续执行其他循环,就需要使用到特殊的流程控制语句。如:break语句,continue语句,exit语句。接着下面就来详细了解PHP中break语句的用法和相关概念。
78 0