Web代理(PHP&;curl)、AJAX和多维关联$u POST数组或$u服务器[';查询#u字符串';]?

Web代理(PHP&;curl)、AJAX和多维关联$u POST数组或$u服务器[';查询#u字符串';]?,php,ajax,post,curl,get,Php,Ajax,Post,Curl,Get,我有一个html表单,它通过AJAX(jquery表单插件)提交到服务器上的PHP Web代理。web代理使用curl发布到第三方脚本 我的html表单有一些输入名称,如p[fname]、p[lname]、c[name]、p[loc]、p[loc][email]、p[loc][email][detail]。名称由第三方应用程序指定 当我使用GET将表单提交到web代理时,我可以简单地执行以下操作,将表单数据成功地传输到curl请求中的第三方脚本: $postvars = $_SERVER['QU

我有一个html表单,它通过AJAX(jquery表单插件)提交到服务器上的PHP Web代理。web代理使用curl发布到第三方脚本

我的html表单有一些输入名称,如p[fname]、p[lname]、c[name]、p[loc]、p[loc][email]、p[loc][email][detail]。名称由第三方应用程序指定

当我使用GET将表单提交到web代理时,我可以简单地执行以下操作,将表单数据成功地传输到curl请求中的第三方脚本:

$postvars = $_SERVER['QUERY_STRING'];
curl_setopt ($session, CURLOPT_POSTFIELDS, $postvars);
问题#1:使用GET向我的web代理提交表单数据是否有任何“错误”?正如我提到的,它工作得很好,并且需要更少的编码$_服务器['QUERY_STRING']正好有我需要通过POST传递给第三方的数据,格式完全正确

问题#2:如果有令人信服的理由使用POST提交到我的web代理,那么在$#U POST中循环多维关联数组以动态构建$POSTVAR,而不必硬编码任何键值的最佳方式是什么


注意:html表单不是任务关键型表单,它提交的数据进入第三方服务中的批准提示。它不会直接插入到生产数据中。

正如名称所说,如果您只想获取数据而不更改服务器端的数据,则应使用
GET

同样,如果请求更改服务器端的数据,则应使用
POST

因此,您应该根据您的请求选择方法。还要注意,URL的长度有限,因此您不能将任意数量的文本放入GET参数中

在完全阅读您的问题(:-D)之后,您的请求似乎更改了(在本例中添加了)数据,这意味着使用
POST
是更正确的方法。但是,由于您只通过
GET
将其发送给您的代理,然后通过
POST
发送给其他应用程序,只要它有效,就可以了。

这只取决于您发送的数据类型。

谢谢!我熟悉使用GET和POST的一般规则。由于GET->POST在这里工作,并且需要更少的编码,所以我试着在以下方面获得一些意见:1。在这种情况下,是否可以违反这条规则。2.在这种情况下,是否有任何真正令人信服的理由(例如安全性)我应该坚持发布而不是获取。正如我在您的案例中所说的,这可能只取决于您发送的数据类型(URL的长度)。关于安全性:POST并不比GET更安全。如果拦截HTTP请求,则无论是POST还是GET,都可以读取所有数据。你也可以篡改POST数据,有Firefox的插件。所以没有大的区别。