PHP 通过 session_name() 设置 cookie 名称后创建新的会话名称

PHP creating new session name after setting the cookie name via session_name()

我不确定为什么 localhost(据我所知虽然不是实时的)偶尔 session_start(); 会生成一个新的 session_id();。虽然 none 的其他线程甚至能够找出导致此问题的原因,但我很快确定 session_name('session'); 是原因。但是我希望会话cookie名称是PHPSESSID

如何设置会话 cookie 名称而不 session_name('session'); 生成新的会话名称(或使用第二个冗余 cookie)?我目前 运行 PHP 7.3.10.

编辑 php.ini 文件并设置 session.name = session 解决了 localhost 上的问题。不过,我对另一种解决方案持开放态度。


对于处理相同问题的人,我应该注意 issue/different 原因如下:

ini_set('session.cookie_secure', 1);

只有在 SSL 处于活动状态时才能 运行:

if (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') {ini_set('session.cookie_secure', 1);}