我正在使用确切的代码:https://ellislab.com/codeigniter/user-guide/libraries/form_validation.html
当配置文件中的csrf_protection设置为false时,一切正常。但是当我将其设置为true并提交表单时,我收到错误:
An Error Was Encountered
The action you have requested is not allowed.
我尝试在Chrome 39和IE 8上运行代码。它适用于两者。但是在Firefox 34上却没有。
显然firefox 34出了问题?我用Google搜索,但我没有找到任何东西。
然后我对csrf_hash发生的事情进行了一些测试。我把log_message('info', $this->security->get_csrf_hash());
放在控制器中。我发现当我在Chrome和IE中刷新(运行)控制器时,csrf_hash不会改变,只是当我提交表单并将帖子发送回控制器时它会被更改。在firefox中,每次控制器运行时都会更改csrf_hash。
在日志文件中,当我在fireofx中提交表单时,最后一个日志是
[DEBUG - 2014-12-10 12:45:50 --> Input Class Initialized]
,
下一个必须是
[DEBUG - 2014-12-10 12:45:50 --> CRSF cookie Set]
但它从未实现过。所以我想在firefox中的表单submition上,crsf cookie不想被设置。为什么在Firefox中而不是在IE和Chrome中?
我是codeigniter的新手,我现在正在研究这个问题第3天=(。
我将不胜感激任何帮助或提示。谢谢!