我一直在我们网站的购买流程部分使用以下代码,放置在使用会话的每个阶段的顶部。可以添加session_start();到我整个网站的顶部?
<?php
session_cache_limiter('private_no_expire'); // must go before session start
session_start();
我想在网站上开始更广泛地使用会话,例如在客户登录区域。
我有一个名为“all.php”的文件,其中包含我的系统上每个页面开始时的所有类/对象和共享包含。我认为从所有单独的电子商务文件中删除上述代码并添加到“all.php”的顶部将是一个好主意,因为它是系统范围的,并且首先加载到页面上。
由于这样做,我的客户登录区域遇到问题。它在用户导航了几个链接后不断向用户返回登录页面。看起来,当你点击一个你已经上过的网址并不喜欢它,只是把你发回到开始。如果您将& 1 = 1添加到您之前参与过的网址中,它会欺骗系统让您访问该网页,因为它有一个新的唯一网址。所以缓存肯定搞乱了。
我没有实际使用的会话在网站的这一部分又那么它不喜欢你真的被注销......它只是送你到该页面你开始的地方,
任何人都可以摆脱任何在这里可能会出错吗?
难道是我使用session_cache_limiter('private_no_expire');
我使用上面的这一行,因为我的购买过程使用POST表单并单击后退按钮给出了关于重新提交数据的丑陋消息。
http://php.net/manual/en/function.session-cache-limiter.php
UPDATE:
评论指出,第一线帮助和问题已停止:
//session_cache_limiter('private_no_expire'); // must go before session start
这是一个临时的解决办法,因为这意味着后退按钮导致数据重新提交警告。这只是意味着我需要正确地贯彻这一点,但我还是IKE明白为什么该行正在做的是:
http://en.wikipedia.org/wiki/Post/Redirect/Get
是的,它可以从页面顶部开始,直到使用会话 – 2014-10-06 09:05:36
会话本身不会导致重定向。你必须在那里有代码。 – Marek 2014-10-06 09:08:24
我们需要查看更多的代码,但是我不明白'session_start()'可能会导致这个问题。我会建议的是,如果您将项目添加到购物车,则在使用header()处理其操作后将用户重定向回特定产品页面 - 这也会阻止它们刷新(并触发有关重新提交表单数据的消息),他们不会觉得需要按下后退按钮(通常) – iamgory 2014-10-06 09:25:08