防止脚本在页面刷新时重新执行操作

yor*_*gos 5 php shopping-cart

过去一周我正在构建自己的php 购物车,但遇到了一些问题。

我设法在购物车中添加了新项目,URL 如下所示。

http://blah-blah.com/order/index.php?action=add&id=84
Run Code Online (Sandbox Code Playgroud)

问题很简单:如果有人刷新页面,如何防止在购物车中再次添加相同的商品?因为现在每次有人刷新页面时,它都会将特定项目的数量更改为 +1。

另外,移动到结帐页面后,如果他们在浏览器中按后退按钮,数量将变为+1;

有什么建议吗?

Lig*_*ica 4

是的。让它们设置,而不是增加数量。

此外,您通常会使用POST(而不是GET)请求来执行此类操作。浏览器知道这一点,并狡猾地询问用户是否要重新提交POST数据。

对于您的用户来说,最简洁的方法可能是使用 AJAX 来完成整个操作。如果他们“返回”,他们将毫无问题地返回到他们访问的最后一页。这相当于 Stack Overflow 上评论的提交方式:您不能“返回”到提交步骤并最终编写重复的评论。