如果我们在session_name中使用点(。),有人可以向我解释为什么浏览器会丢失会话吗?
示例:
session_name('abc'); // works
session_name('a.bc'); // doesn't work
答案 0 :(得分:7)
来自PHP session_name()
docs:
会话名称引用会话的名称,该名称用于cookie和URL(例如PHPSESSID)。它应该只包含字母数字字符;它应该简短且具有描述性(即对于启用了cookie警告的用户)。如果指定了name,则将当前会话的名称更改为其值。
注意"它应该只包含字母数字字符"。
答案 1 :(得分:2)
PHP docs表示$name
提供给session_name($name)
should contain only alphanumeric characters;
因此,当您提供的会话名称无效时,会生成新的会话名称。