Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.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 所有数据都应该通过HTTP-POST发送吗?_Php_Http Post - Fatal编程技术网

Php 所有数据都应该通过HTTP-POST发送吗?

Php 所有数据都应该通过HTTP-POST发送吗?,php,http-post,Php,Http Post,我有一些jQuery将数据发送到AddComment.php页面。数据是用户id(可以通过会话获得)、项目id和文本表单下的注释 在这种情况下,所有数据都应该通过POST发送吗?是否存在GET和POST混合的情况?应该通过POST发送,主要是因为评论可能超过web浏览器将访问的URL的长度。它也应该通过邮寄发送,因为此表单创建或修改数据,这是惯例。例如,搜索蜘蛛不会发出POST请求来避免这样做 你不能把GET和POST混用。HTTP请求只有一种方法。实际上,我认为如果您这样做: var id=

我有一些jQuery将数据发送到AddComment.php页面。数据是用户id(可以通过会话获得)、项目id和文本表单下的注释


在这种情况下,所有数据都应该通过POST发送吗?是否存在GET和POST混合的情况?

应该通过POST发送,主要是因为评论可能超过web浏览器将访问的URL的长度。它也应该通过邮寄发送,因为此表单创建或修改数据,这是惯例。例如,搜索蜘蛛不会发出POST请求来避免这样做


你不能把GET和POST混用。HTTP请求只有一种方法。

实际上,我认为如果您这样做:

var id= $('#id').val();
var itemid= $('#itemid').val();
var comment= $('#comment').val();
var url = 'AddComment.php?id='+id;
var data = { itemid: itemid, comment: comment }
$.post(url, data, successFunction);
您的itemId将通过POST发送,ID将通过GET和php识别出来(我有时使用表单的动作,但不是通过ajax)


顺便说一句,你为什么需要这个?为什么不通过POST发送所有信息?

去阅读RFC2616

GET和POST有非常特定的语义,这对缓存和日志记录有很大的影响

在您的示例中,要添加的数据应该在POST中发送。是否应该通过POST或GET变量发送对正在评论的项目的引用是有争议的。(您可以使用查询字符串发布到URL,任何有能力的web语言都应该能够区分通过这两种方法发送的相同变量名)


关于何时应该混合GET和POST的一个更为透明的示例是,何时发布到前端控制器-在这里,相同的路径由各种不同的功能位使用(如果您愿意,可以使用网页)。正在调用的特定功能位由GET操作中的查询指示。如果选择标准被移动到POST中,那么您必须在前端控制器中满足这两种情况,并且您将无法解析日志文件中的功能

您不妨将所有内容作为
POST
发送。我唯一的建议是,如果你可以从会话中获取用户id,那么这样做比依赖用户输入(用户可以更改输入)更安全。你可以混合GET和POST。我不同意:你可以混合POST和GET,这取决于你的意思。在PHP中,查询字符串被传递到数组$\u GET。在post请求中使用QueryString没有问题。$\u GET和$\u POST将包含内容。@Dan您能对此进行更多解释吗。从没听说过这个。如果我在URL:
http://example.com/?param=value
?@Karolis:这是一篇带有查询字符串的HTTP帖子。不是HTTP GET。但是$\u GET将包含内容。“顺便说一句,为什么你需要这个?为什么不通过POST发送所有内容?”我的基本经验是,当请求涉及到向数据库写入内容时,使用POST。然而,我一直在想,是否有什么可以证明GET/POST杂交的合理性。所以,我很想知道你是如何/为什么通过GET发送ID的:)事实上,我经常这样做(混合POST/GET),thanx到symcbean我也有一些关于这个主题的背景!)