【发布时间】:2010-08-26 14:25:30
【问题描述】:
有没有一种情况(比如一些古怪的浏览器)表单输入字段的 id 成为 $_POST、$_GET 或 $_REQUEST 中的键,而不是字段名称?
我们遇到了 ID 与名称不匹配的字段。更改 ID 以匹配似乎可以解决问题。问题纯粹是 PHP 解析;不涉及 JS。
巧合?
Google 不会返回这样的东西...
一个函数(对不起,旧的 php4 代码)生成该字段。这是其中的一部分
echo "<select name=\"$varName";
echo "_dd\" id=\"$varName";
echo "e_dd\">\n";
从最后一行中删除“e”显然修复了它。我不是自己做的;这里有人告诉我它解决了这个问题。它并没有破坏每个日期字段,这似乎是一个间歇性问题。这就是为什么我立刻想到了一些奇怪的浏览器怪癖。
【问题讨论】:
-
一些代码和示例会有用吗?您是否使用 JavaScript 提交表单?
-
@Travis 粘贴一些代码。
-
绝对没有JS,只是一个提交按钮。有问题的字段是一个日期字段,其中包含三个名为 (field_yyyy、field_dd、field_mm) 的下拉列表。在接收端,一个 PHP 函数通过 $_POST,识别出有一个日期,以适当的格式连接它们,转义它们,并将它们输入数据库。
-
浏览器生成
POST或GET请求,PHP处理这个请求并管理$_POST和$_GET数组中的POST/GET变量。您的问题不能由 PHP 引起,只有浏览器是生成请求的那个。您可以使用例如调试请求萤火虫。 -
我想知道是否有浏览器怪癖导致它...这是在哪个浏览器中发生的(您是否尝试过多种不同的浏览器)?