PHP 自定义会话名称

PHP Custom Session Name

我已经编写网站代码很长时间了,但从未使用 PHP 中内置的 session_name() 函数来设置自定义会话名称而不是默认值(PHP SESSID).

我有一个登录页面,可以在您成功登录后将您重定向到另一个文件。在那个文件中,我基本上是在检查 isset($_SESSION) 如果我没有设置我重定向到登录页面。否则,我说 Hello $_SESSION["Username"].

我最近决定使用 session_name 并设置一个自定义名称。但是,现在第二个文件中的脚本(检查是否设置了 $_SESSION)总是说它没有设置。我刚刚更改了会话名称。

然后我在 Google 上四处搜索,发现我需要在第二个文件中再次执行 sesssion_name()session_start() 才能访问用户名。

TL;DR

我是否总是需要对每个文件执行 session_name()session_start() 才能使用自定义会话名称访问我的会话数据?

有不明白的地方我可以澄清一下;可能不太容易理解。

您需要 运行 session_name() 在每个需要访问自定义会话的文件上,将逻辑存储在一个单独的包含文件中,该文件包含在所有相关文件中,或者更改PHP 的默认会话名称通过 session.name configuration value.

如果不在每种情况下指定 session_name(),PHP 将不知道您希望它使用不同的名称,而是默认使用 session.name 中的值。