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);}
我不确定为什么 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);}