PHP会话:后续请求发送的会话Cookie消失($ _COOKIE [' sessionName']为空)

时间:2015-12-27 20:52:56

标签: php session cookies

我正在使用基于数据库的PHP SessionHandlerInterface实现。 该实现在我的本地安装上完美运行,但我的提供商网站空间上的会话cookie存在问题:

后续的客户端到服务器请求(获取一些css和js文件)发送带有会话ID的cookie,收到的第一个(登录)请求(如chrome和firefox的开发人员工具中所示)似乎没有任何服务器上的会话cookie信息 - COOKIE['sessionName']未设置。

因此,这些资源无法正确加载,因为它们仅在用户登录时才可用 - 在第一次登录请求后应该是什么。

这些是我使用的ini-settings:

ini_set('session.auto_start', 0);
ini_set('session.entropy_file', '/dev/urandom');
ini_set('session.entropy_length', '256');
ini_set('session.gc_maxlifetime', 1440;
ini_set('session.gc_probability', 1);
ini_set('session.gc_divisor', 10);
ini_set('session.hash_bits_per_character', '5');
ini_set('session.hash_function', 'sha256');
ini_set('session.use_cookies', 1);
ini_set('session.use_only_cookies', 1);
ini_set('session.use_strict_mode', 1);
ini_set('session.use_trans_sid', '0');

之前调用session_start()的做法是:

session_name('sid');
session_set_save_handler($this, true);
session_set_cookie_params(3600, '/', $_SERVER['SERVER_NAME'], isset($_SERVER['HTTPS']), true);
register_shutdown_function('session_write_close');

这种问题可能是什么原因 - 会话cookie如何在从客户端到服务器的途中消失?

0 个答案:

没有答案