PHP 会话不持久


PHP Session not persisting

我正在尝试使用 PHP 会话来存储通过引用网站的查询字符串传递 1 次的状态。问题是在本地我可以在会话范围内保持此状态,但它在生产服务器上的工作方式不同。

我试图在 wp-config 的 WordPress 中执行此操作.php在文件底部

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。

有什么建议吗?一些配置设置可能不同?

谢谢

我没有解决会话被遗忘的问题,但我发现使用 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,而是在浏览会话结束时过期。