我在这里要解决一个有趣的问题,可能需要一些创意指导。我有一个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
他们将被重新布线,好像他们已经看到他们没有的“两个”的报价。
我希望这个问题有道理。如果您需要进一步澄清,请询问。感谢您解决我的问题,如果您没有确切的答案,但可以指出我正确的方向,我将非常感激。
答案 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列表中,如果是,则重定向用户,如果不是,则添加它。
我确信您已经意识到用户可以轻松解决会话中的维护状态,因为您提到您只需要在“每个会话”的基础上进行此重定向。