【问题标题】:Very strange form behaviour非常奇怪的表单行为
【发布时间】:2010-06-18 13:39:48
【问题描述】:

我无法解决这个问题。前一分钟它工作正常,现在不行,我看不出有什么变化!! 我的问题只是提交登录功能的用户名和密码。 form 方法设置为“post”,但由于某种原因没有数据通过。如果我转储 $_REQUEST 或 $_POST 他们返回空。 我知道表单正在提交,因为如果我将方法更改为“获取”,我会按预期收到数据。谁能想到当“post”不是时“get”会起作用的任何原因?!?!?如果相关,我正在使用 codeigniter 框架。

【问题讨论】:

  • 你能显示表单的 HTML 代码吗?

标签: php forms codeigniter post submit


【解决方案1】:

我会首先检查这是否没有任何 CI 特定原因,正如@Pete 指出的那样。

唯一想到的另一个想法是,也许您在某处有一个带有mod_rewrite 指令的.htaccess 文件,并且由于某种原因而不是内部原因完成了标头重定向。标头重定向将传递 GET 变量(如果使用 [QSA])但会丢失 POST 变量。

【讨论】:

  • 我不明白为什么标题重定向会突然发生。我没有添加 .htaccess 文件,所以它不会解释为什么它只是停止工作。不过我会检查一下。
  • 进行了重定向,但隐藏在代码的深处,而不是 .htaccess 文件中。花了很多调试才找到它.... :-)
【解决方案2】:

我似乎记得 codeignitor 阻止直接访问 $_POST - 检查文档(类似 $this->input->post 或类似的东西)

【讨论】:

  • 不,$_POST 很好。 CI 仅取消设置 $_GET (刚刚检查了我的一个 CI 实例)。但是,@musoNic80: $this->input->post() 提供了什么? index.php 中的 var_dump 是否显示相同的问题?
  • @Boldewyn: $this->input->post() 返回 false,根据 CI 文档,这意味着该变量不存在。我有一个全局分析器,它显示 $_POST 数组为空。
猜你喜欢
  • 1970-01-01
  • 2016-03-13
  • 2011-03-01
  • 2020-12-02
  • 1970-01-01
  • 1970-01-01
  • 2018-04-20
  • 2020-02-09
  • 1970-01-01
相关资源
最近更新 更多