我有一个HTML表单,通过AJAX(jQuery表单插件)提交给我的服务器上的PHP Web代理。 Web代理使用curl将POST发送给第三方脚本。
我的html表单有p [fname],p [lname],c [name],p [loc],p [loc] [email],p [loc] [email] [detail] 。名称由第三方应用程序指定。
当我使用GET的形式提交给Web代理,我可以简单地做以下成功发送表单数据的第三方脚本的卷曲请求里面:
$postvars = $_SERVER['QUERY_STRING'];
curl_setopt ($session, CURLOPT_POSTFIELDS, $postvars);
问题1:使用GET将表单数据提交给我的Web代理服务器有什么“错误”?正如我提到的,它工作正常,并且需要更少的编码。 $ _SERVER ['QUERY_STRING']具有我需要通过POST传递给第三方的完全正确格式的数据。
问题2:如果有令人信服的理由使用POST提交给我的Web代理,那么循环遍历$ _POST中的多维关联数组以便动态构建$ postvars的最佳方式是什么?编码任何关键值?
注意:html表单不是关键任务,它提交的数据会进入第三方服务的批准提示。它不会直接插入生产数据中。
谢谢!我熟悉何时使用GET和POST的一般规则。由于GET-> POST在这里工作,并且需要较少的代码,所以我想获得一些意见: 1.在这种情况下是否可以打破此规则。 2.是否有真正令人信服的理由(例如安全),我应该坚持POST而不是GET在这种情况下。 – Tex 2010-01-08 13:59:10
正如我在你的情况说,它可能只取决于你发送的数据类型(URL的长度)。关于安全性:POST不比GET更安全。如果拦截HTTP请求,则无论是POST还是GET,都可以读取每个数据。你也可以篡改POST数据,Firefox有插件。所以没有太大的区别。 – 2010-01-08 14:18:04