Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP$\u POST、$\u GET和$\u请求键_Php_Post_Get_Request - Fatal编程技术网

PHP$\u POST、$\u GET和$\u请求键

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 "

是否曾经有过这样的情况(比如一些古怪的浏览器),表单输入字段的id变成了$\u POST、$\u GET或$\u REQUEST中的键,而不是字段的名称

我们遇到了一个ID与名称不匹配的字段问题。将ID更改为匹配似乎可以解决此问题。问题纯粹是PHP解析;不涉及JS

巧合

谷歌没有返回这样的东西


一个函数(抱歉,旧的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
。我从未体验过