PHP$\u POST、$\u GET和$\u请求键
是否曾经有过这样的情况(比如一些古怪的浏览器),表单输入字段的id变成了$\u POST、$\u GET或$\u REQUEST中的键,而不是字段的名称 我们遇到了一个ID与名称不匹配的字段问题。将ID更改为匹配似乎可以解决此问题。问题纯粹是PHP解析;不涉及JS 巧合 谷歌没有返回这样的东西PHP$\u POST、$\u GET和$\u请求键,php,post,get,request,Php,Post,Get,Request,是否曾经有过这样的情况(比如一些古怪的浏览器),表单输入字段的id变成了$\u POST、$\u GET或$\u REQUEST中的键,而不是字段的名称 我们遇到了一个ID与名称不匹配的字段问题。将ID更改为匹配似乎可以解决此问题。问题纯粹是PHP解析;不涉及JS 巧合 谷歌没有返回这样的东西 一个函数(抱歉,旧的php4代码)生成该字段。这是其中的一部分 echo "<select name=\"$varName"; echo "_dd\" id=\"$varName"; echo "
一个函数(抱歉,旧的php4代码)生成该字段。这是其中的一部分
echo "<select name=\"$varName";
echo "_dd\" id=\"$varName";
echo "e_dd\">\n";
echo“\n”;
从最后一行删除“e”显然修复了它。我不是自己做的;有人告诉我它解决了这个问题。它并没有打破每个日期字段,它似乎是一个间歇性的问题。这就是为什么我立刻想到了一些奇怪的浏览器怪癖。不,是:
控件的“控件名称”由其name
属性给出。FORM
元素中控件的name
属性的范围是FORM
元素
不,这是:
控件的“控件名称”由其name
属性给出。FORM
元素中控件的name
属性的范围是FORM
元素
干净的代码是很好的代码:)。你能证实这不起作用吗
echo "<select name='".$varName."_dd' id='".$varName."e_dd'>\n";
echo“\n”;
看到生成的html也很好。干净的代码是很好的代码:)。你能证实这不起作用吗
echo "<select name='".$varName."_dd' id='".$varName."e_dd'>\n";
echo“\n”;
最好也能看到生成的html。在XHTML 1.1 strict中,id已替换名称,而名称已弃用 如果您的XHTML是使用HTTP内容类型应用程序/XHTML+xml发送的(根据标准,它必须是这样),那么很可能按照标准发送给Tee的浏览器将使用ID在PHP中填充$\u POST,而不是使用名称 请参见XHTML 1.1规范:
名称属性仅允许在、applet、frame、iframe和map元素中使用。而恰好有名称的任何其他元素都必须有相同名称的id。在XHTML 1.1 strict中,id已替换了名称,名称已被弃用 如果您的XHTML是使用HTTP内容类型应用程序/XHTML+xml发送的(根据标准,它必须是这样),那么很可能按照标准发送给Tee的浏览器将使用ID在PHP中填充$\u POST,而不是使用名称 请参见XHTML 1.1规范:
名称属性仅允许在、applet、frame、iframe和map元素中使用。任何其他恰好有名称的元素都必须有相同名称的id。一些代码和示例会有用吗?你在用JavaScript提交表单吗?@Travis粘贴一些代码。绝对没有JS,只是一个提交按钮。该字段是一个日期字段,有三个名为like的下拉列表(field_yyy、field_dd、field_mm)。在接收端,PHP函数通过$\u POST,识别有日期,以适当的格式连接它们,转义它们,并将它们输入数据库。浏览器生成一个
POST
或GET
请求,PHP处理此请求并管理$\u POST
和$\u GET
数组中的POST/GET
变量。您的问题不可能是由PHP引起的,只有生成请求的浏览器。你可以用FireBug来调试这个请求。我想知道是不是浏览器的问题导致了它。。。这是在哪个浏览器中发生的(您尝试过多个不同的浏览器吗)?一些代码和示例会很有用吗?你在用JavaScript提交表单吗?@Travis粘贴一些代码。绝对没有JS,只是一个提交按钮。该字段是一个日期字段,有三个名为like的下拉列表(field_yyy、field_dd、field_mm)。在接收端,PHP函数通过$\u POST,识别有日期,以适当的格式连接它们,转义它们,并将它们输入数据库。浏览器生成一个POST
或GET
请求,PHP处理此请求并管理$\u POST
和$\u GET
数组中的POST/GET
变量。您的问题不可能是由PHP引起的,只有生成请求的浏览器。你可以用FireBug来调试这个请求。我想知道是不是浏览器的问题导致了它。。。这是在哪个浏览器中发生的(你试过多个不同的浏览器吗)?我想他说的是,出于某种原因,这似乎不是最好的case@fredley就我所知,这种情况是不可能的,除非他有一些javascript弄乱了他的元素属性。但是他说“纯PHP”,你的答案只包括HTML4。看看霍普塞克的答案。我想他说的是,出于某种原因,这似乎不是正确的答案case@fredley就我所知,这种情况是不可能的,除非他有一些javascript弄乱了他的元素属性。但是他说“纯PHP”,你的答案只包括HTML4。请参阅Hopeseker的答案。echo'\n'
更快,因为PHP不必“解析”双引号字符串。我想看起来也更好。@JoostK:代码无论如何都需要解析。但是您的示例将逐字打印\n
。我从未经历过错误,因此无法真正测试它。我很清楚这不是最好的。。。这本书大概有10年的历史,是由一位设计师写的。现在可以用了,不过我会把它清理干净的。谢谢最快的方法是echo“”,“\n”代码>:)确实必须解析代码,但如果使用单引号,字符串将不会被解析(如$variables
中所述)。关于\n
,您是对的,应该是''。PHP_EOL代码>echo'\n'
更快,因为PHP不必“解析”双引号字符串。我想看起来也更好。@JoostK:代码无论如何都需要解析。但您的示例将逐字打印\n
。我从未体验过