首页 > 解决方案 > PHP 自定义会话名称

问题描述

我一直在编写一个网站很长时间,但从未使用session_name()PHP 中内置的函数来设置自定义会话名称而不是默认 (PHPSESSID)。

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

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

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

TL;博士

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

如果不清楚,我可以澄清一些事情;可能不容易理解。

标签: phpsessionsession-variables

解决方案


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

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


推荐阅读