阻止用户打开同一网站的多个实例

时间:2011-11-24 06:28:35

标签: php javascript html session

我需要帮助处理网络上的PHP和JS脚本。

我想要做的就是购物车。产品信息通过url参数传递,并以PHP格式存储到SESSIONS中。 (例如http://www.mysite.com/pid=13

如果用户在浏览器中打开新标签并加载http://www.mysite.com/pid=25,则第二个标签会显示包含2个项目的更新购物车,但第一个标签只会显示1个项目,除非我手动刷新它。

我需要的是:

  1. 当用户第一次访问我的网站时,将加载信息。
  2. 当用户在浏览器上打开同一站点的另一个实例(同一个URL)时,第二个实例将被关闭,第一个实例将被刷新以加载一些更新的信息。
  3. 简单来说,我不希望用户通过强制关闭第二个选项卡并刷新第一个选项卡来在同一个浏览器中打开我的站点的多个实例。有没有什么方法可以使用PHP和JS的组合来做到这一点?

2 个答案:

答案 0 :(得分:0)

解决方案不是更改站点的刷新/加载行为。而不是我会改变您当前在商店中存储/保存商品的方式。如果客户将文章放入购物车,我建议你做回复邮件。

如果您这样做,则无需将客户重定向到任何新网站。逻辑将“神奇地发生”作为后退过程。

如果客户稍后访问他的购物车,您可以使用userid从数据库加载它。

如果你不想在这个方法中使用像jquery这样的大型库,你也可以用一个简单的弹出窗替换你的保存逻辑:=>点击添加到购物车按钮,打开mypopup.php?articleId = 5,将数据保存到数据库中,自动关闭弹出窗口

有任何问题吗?不要犹豫使用评论:)

答案 1 :(得分:0)

从您的问题我相信您通过'get'将商品添加到购物车。 我建议你通过'POST'添加 而是将您的唯一ID和其他项目相关数据放入隐藏的表单中。 例如:

<form action="add_to_cart.php" method="post">
<p>Some Item Name</p>
<input type="hidden" name="item_name" value="Some Item Name" />
<p>Description: SOME DESCRIPTION</p>
<input type="hidden" name="description" value="Some Description" />
<p>Price: $123.00</p>
<input type="hidden" name="price" value="123.00" />
<input type="hidden" name="item_id" value="123" />
<!-- GENERATE TOKENS FOR YOUR FORM TO PREVENT XSS / CSRF attack -->
<input type="hidden" name="token" value="somerandomtoken" />
<input type="submit" name="add_to_cart" value="Add to Cart" />
</form>

在这种情况下,用户只能通过提交此表单将项目添加到购物车。 希望这会有所帮助。