0

我开发了一个购物车,当用户在整个结账过程中选择选项时,它会将订单总金额作为隐藏变量跨页面提交。在用户输入他/她的信用卡信息的最后一页上,我要求用户选中使用条款框。如果用户没有选择该框,则会显示一条错误消息以及其下方的最后一个结帐页面。

不幸的是,如果我使用 include(page.php) 显示结帐页面,则订单金额为 0.00 美元,因为它不包括我跨页面传递的订单总额。有没有办法让该变量的值显示在页面上?或者有没有更好的方法来显示错误消息而不是使用 echo 消息然后包含以显示它下面的页面?我需要能够指出错误并且仍然在页面上显示订单总数。

谢谢!

4

1 回答 1

2

不建议通过用户提交的数据传递这么重要的变量;这样做可能会导致用户支付的费用低于他们应支付的费用。

更好的方法是将此值存储在会话中,即

session_start();
// update the total
$_SESSION['total'] = 123;

然后,在结帐页面:

session_start();
echo "Total: ", $_SESSION['total'];

会话通过会话 cookie 永久存在,包括会话标识符;在每次请求时,cookie 都会与请求一起发送,以便系统可以定位磁盘(或其他存储介质)上的实际数据。

请注意,session_start()必须任何输出发送到浏览器之前运行。

于 2013-09-03T02:43:42.000 回答