会话Flash数据正在“神奇地”改变,为什么?

时间:2018-01-19 19:04:54

标签: php codeigniter session-variables codeigniter-2

我有一个基于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}}设置它们只是试图获取它们但它们正在改变,为什么?

1 个答案:

答案 0 :(得分:4)

  

当我致电/auth/index2时,我希望它具有相同的值,对吗?

不。而你实际上已经解释了原因:

  

当我设置flashdata会话var时,它应该仅适用于下一个请求,对吗?

您在var_dump()中执行的那些index()不会显示您刚设置的$key$value内容。它们会显示您在之前的 index()来电中设置的值,但之后未调用index2()

令人困惑,我知道。 CI2就像那样...充满了虫子和奇怪的东西,这就是为什么它已经停止了以前。尽快升级到最新的CI 3.x.

此外,CodeIgniter拥有自己的CSRF保护机制 - 您不需要实施它。并且random_string()并非真正随意...不要将其用于安全。