服务器

时间:2016-05-04 12:58:31

标签: php session cookies

使用我的网站移动到其他服务器,我面临着php会话的严重问题。我可以从我的chrome dev控制台检查它,当我使用setcookie()时会发送cookie,但是使用session_start()不会留下通过服务器发送到浏览器的cookie的痕迹。

将网站放在子域上,我已经尝试提供真正的子域名:

ini_set('session.cookie_domain', 'real.subdomain.net');
session_set_cookie_params( 0, "/", "real.subdomain.net", false, false);

我发现有些人遇到同样的问题,他们可以通过更改会话保存路径来解决问题:

ini_set('session.save_path', realpath(dirname($_SERVER['DOCUMENT_ROOT']) . '/../session'));

对我来说都不适用。我没有收到任何错误或通知。

phpinfo()会话部分没有任何线索,我看起来就像其他人一样。

解决方法

我为这种情况找到了一些解决方法,其中“普通”cookie正在运行但不是会话cookie:

if ( isset($_COOKIE[session_name()]) ) {
    session_id($_COOKIE[session_name()]);
    session_start();
} else {
    session_start();
    setcookie(session_name(), session_id());
}

0 个答案:

没有答案