如果我们在PHP session_name中使用点,为什么浏览器会丢失会话?

时间:2014-01-08 00:31:11

标签: php

如果我们在session_name中使用点(。),有人可以向我解释为什么浏览器会丢失会话吗?

示例:

session_name('abc'); // works        
session_name('a.bc'); // doesn't work    

2 个答案:

答案 0 :(得分:7)

来自PHP session_name() docs:

  

会话名称引用会话的名称,该名称用于cookie和URL(例如PHPSESSID)。它应该只包含字母数字字符;它应该简短且具有描述性(即对于启用了cookie警告的用户)。如果指定了name,则将当前会话的名称更改为其值。

注意"它应该只包含字母数字字符"。

答案 1 :(得分:2)

PHP docs表示$name提供给session_name($name)

should contain only alphanumeric characters;

因此,当您提供的会话名称无效时,会生成新的会话名称。