我有一个基于CI 2.1.3和PHP 5.3.3构建的项目。根据文档here»Flash数据部分,当我设置flashdata会话var时,它应仅适用于下一个请求,对吧?
我做了以下测试:
/auth/index2
当我致电// /auth/index
string(8) "meo6dhEr"
string(20) "JNNN07XMXfmADzYw6cKc"
// /auth/index2
string(8) "I2vmFRuO"
string(20) "CbDhiD8CkY3plOK7Hg7B"
时,我希望它具有相同的值,对吗?不知何故,这些都在改变,见下文:
index2
有什么想法吗?我没有在{{1}}设置它们只是试图获取它们但它们正在改变,为什么?
答案 0 :(得分:4)
当我致电
/auth/index2
时,我希望它具有相同的值,对吗?
不。而你实际上已经解释了原因:
当我设置flashdata会话var时,它应该仅适用于下一个请求,对吗?
您在var_dump()
中执行的那些index()
不会显示您刚设置的$key
,$value
内容。它们会显示您在之前的 index()
来电中设置的值,但之后未调用index2()
。
令人困惑,我知道。 CI2就像那样...充满了虫子和奇怪的东西,这就是为什么它已经停止了以前。尽快升级到最新的CI 3.x.
此外,CodeIgniter拥有自己的CSRF保护机制 - 您不需要实施它。并且random_string()
并非真正随意...不要将其用于安全。