我正在尝试使用PHP会话来存储通过引用网站的查询字符串传递一次的状态。麻烦在本地我可以在会话范围内维护这种状态,但它在生产服务器上的工作方式不同。
我试图在文件脚下的wp-config.php中的Wordpress中执行此操作:
session_set_cookie_params(0);
session_start();
启动与浏览器一起过期的会话。 然后检查&设置查询字符串参数:
if (!isset($_SESSION['isEUStore']) && isset($_GET['store']) && strtolower($_GET['store'])=='eu') $_SESSION['isEUStore']=true;
elseif (!isset($_SESSION['isUSStore']) && isset($_GET['store']) && strtolower($_GET['store'])=='us') $_SESSION['isUSStore']=true;
然而,$ _SESSION ['isEUStore']或$ _SESSION ['isUSStore']在网站的任何其他Wordpress页面上返回NULL。
有什么建议吗?有些配置设置可能不同吗?
谢谢,
答案 0 :(得分:1)
我没有解决会话被遗忘的问题,但我发现使用的是Cookie。如:
if (!empty($_GET['store']) && strtolower($_GET['store'])=='eu') {
setcookie('isEUStore', true, 0, '/', $faco_domain);
setcookie('isUSStore', true, time()-3600, '/', $faco_domain);
} elseif (!empty($_GET['store']) && strtolower($_GET['store'])=='us') {
setcookie('isUSStore', true, 0, '/', $faco_domain);
setcookie('isEUStore', true, time()-3600, '/', $faco_domain);
}
在Wordpress页面之间不会忘记cookie,但在浏览会话结束时会过期。