关于$_SESSION['verify']的迷惑

图片描述

为什么表单提交之后session的值会是post传过去的值呢?
换个名字都可以正常,唯独用verify会出现这种现象

阅读 2.5k
2 个回答

这很可能是PHP的一个Bug。

因为$_SESSION中的变量保存使用的是引用,当register_globals设置为on的时候,如果全局变量中有名字和$_SESSION中的变量名一样(比如你的代码中的$verify变量和$_SESSION['verity']这两个verify),PHP会有不可预料的行为发生。所以,你的这个问题不是POST过去的值传到了$_SESSION中,而是$_SESSION['verify']错误地引用了全局的$verify变量。

这在PHP的官方文档下用户的Comment中提到多次:
http://php.net/manual/en/reserved.variables.session.php

Post 的值是从表单传过去的

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题