PHP会话:子序列请求发送的会话COOKIE出现($#u COOKIE[';sessionName';]为空)

PHP会话:子序列请求发送的会话COOKIE出现($#u COOKIE[';sessionName';]为空),php,session,cookies,Php,Session,Cookies,我正在使用基于数据库的PHPSessionHandlerInterface实现。 该实现在我的本地安装上运行良好,但我的提供商Web空间上的会话cookie有问题: 随后的客户端到服务器请求(获取一些css和js文件)发送带有会话ID的cookie收到的第一个(登录)请求(如chrome和firefox的开发工具所示)似乎在服务器上没有任何会话cookie信息的情况下到达-cookie['sessionName']未设置 因此,无法正确加载这些资源,因为这些资源只有在用户登录时才可用—在第一次登

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

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

因此,无法正确加载这些资源,因为这些资源只有在用户登录时才可用—在第一次登录请求之后他应该是什么样的

以下是我使用的ini设置:

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\u 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如何在从客户端到服务器的过程中消失?

您应该设置ini文件,并在测试时将其读回。许多提供程序不允许更改服务器设置。我检查每个ini\U set返回值,如果任何返回值为false,则抛出异常。PHP文档。成功时返回旧值,失败时返回FALSE。但我会尝试一下。我检查了ini设置。全部通过
ini\u get()
我设置的值返回。