php - PHP 自定义会话名称
问题描述
我一直在编写一个网站很长时间,但从未使用session_name()
PHP 中内置的函数来设置自定义会话名称而不是默认 (PHPSESSID)。
我有一个登录页面,可在成功登录后将您重定向到另一个文件。在那个文件中,我基本上是在检查isset($_SESSION)
我是否没有设置我重定向到登录页面。否则,我说Hello $_SESSION["Username"]
。
我最近决定使用session_name
并设置一个自定义名称。但是,现在第二个文件中的脚本(检查是否$_SESSION
设置)总是说它没有设置。我刚刚更改了会话名称。
然后我在谷歌上四处搜索,发现我需要再做一次sesssion_name()
,session_start()
在第二个文件中才能访问用户名。
TL;博士
我是否总是需要在每个文件session_name()
上session_start()
使用自定义会话名称访问我的会话数据?
如果不清楚,我可以澄清一些事情;可能不容易理解。
解决方案
您需要session_name()
在每个需要访问自定义会话的文件上运行,将逻辑存储在一个单独的包含文件中,该文件包含在所有相关文件中,或者通过session.name
配置值更改 PHP 的默认会话名称。
如果不指定session_name()
每种情况,PHP 将不知道您希望它使用不同的名称,而是默认为 from 的值session.name
。
推荐阅读
- javascript - Sequelize,请求带有评级和标签的产品的问题
- mlflow - 如何将本地 MLflow 运行复制到远程跟踪服务器?
- asp.net - 带有自定义 ClientStore 的 IdentityServer
- php - PHP 脚本 - 注释/取消注释行
- r - R:用“嵌套”变量绘制 ggplot 条
- javascript - 有没有办法确定参数是否是 JavaScript 中的方法?
- .htaccess - .htaccess 将所有子域重定向到相应的文件夹
- javascript - 链接从生成器函数返回的承诺
- docker - 如何使用单个 docker compose 在不同目录中构建容器
- python - 关于霍夫变换及其绘图(3点绘制)