如何为PHP表单中传递的值创建一次性商品?

时间:2011-07-17 05:58:23

标签: php session get routes

我在这里要解决一个有趣的问题,可能需要一些创意指导。我有一个PHP页面,它具有各种不同的页面结果,具体取决于通过Web浏览器传递的值。例如:

http://examplesite.com/landingpage.php?id=one
http://examplesite.com/landingpage.php?id=two
http://examplesite.com/landingpage.php?id=three

通过当前设置,每个页面都为网站访问者提供了不同的优惠。这是抓住......
我只希望每个会话一次为访问者提供该页面。 这似乎很容易,但我不能让它正常工作。我已经使用一次性提供脚本来提交cookie,然后如果他们已经查看了该提议,则会将用户重定向到另一个页面,但这对于这种情况不起作用。它适用于一个登录页面,但它基于根PHP页面,因此如果传递任何其他值,它将重新路由用户,即使他们没有看到该提议。

例如,如果网站访问者访问:

http://examplesite.com/landingpage.php?id=one
他们会看到一次性报价。然后,如果他们去:

http://examplesite.com/landingpage.php?id=two

他们将被重新布线,好像他们已经看到他们没有的“两个”的报价。

我希望这个问题有道理。如果您需要进一步澄清,请询问。感谢您解决我的问题,如果您没有确切的答案,但可以指出我正确的方向,我将非常感激。

1 个答案:

答案 0 :(得分:0)

如果不查看landingpage.php的代码,我只能猜测在检查cookie是否存在时,您不会考虑id。您需要基于每个ID设置Cookie。否则,您会看到以下行为:查看id=one将设置Cookie,当用户查看id=two时,landingpage.php会看到Cookie存在并重定向用户。

如果你想保持足够简单,你可以让你的cookie成为一串id字段,用一个字符(如管道或逗号)viewed_ids=one,two,three分隔。然后你可以解析它以查看当前页面的id是否在查看的id列表中,如果是,则重定向用户,如果不是,则添加它。

我确信您已经意识到用户可以轻松解决会话中的维护状态,因为您提到您只需要在“每个会话”的基础上进行此重定向。