CodeIgniter 3 - flashdata() 在页面重新加载后始终返回 null

问题描述 投票:0回答:1

从 CodeIgniter2 迁移到 CI3。 PHP 8.2

通过查看网络流量,我确认不存在多个请求。只有 4 个其他文件从同一服务器加载,它们是 favicon、两个 svg 文件和一个 javascript 脚本,这些文件都没有经过 CI。另外,如果多个请求导致这种情况,在旧的 CI2 系统中也会发生这种情况,但效果很好。

调用

set_flashdata()
在 session_ci3 表中设置适当的记录。正如预期的那样,重新加载页面会从记录中删除闪存数据。

如果在

flashdata()
之后立即调用,则调用
set_flashdata()
将返回正确的值。

$mytestmessage = $this->session->flashdata('mytestmessage');
echo "Old testmessage: $mytestmessage";
$this->session->set_flashdata('mytestmessage', 'THIS IS A TEST FLASHDATA MESSAGE');
$mytestmessage = $this->session->flashdata('mytestmessage');
echo "New testmessage: $mytestmessage";

多次运行上述代码的输出始终是:“Old testmessage: New testmessage: THIS IS A TEST FLASHDATA MESSAGE”

预期输出为“旧测试消息:这是测试闪存数据消息新测试消息:这是测试闪存数据消息”

以下问题未得到解答:

codeigniter codeigniter-3
1个回答
0
投票

较新版本的 php 不再支持 flashdata,您应该用 tempdata 替换 flashdata

show:
tempdata('alert');
set:
set_tempdata('alert', 5);

更多详情: CodeIgniter 会话库

© www.soinside.com 2019 - 2024. All rights reserved.