一个愚蠢的问题,但我有点困惑。 我使用pubsubhubbub并使用if(isset($ _ HTTP_RAW_POST_DATA))检查新信息。 我检查用户是否已登录:
if(isset($_SESSION['user'])) {
//logged
}
用户可以发送HTTP_RAW_POST_DATA吗?
答案 0 :(得分:2)
因此,基本上任何向您的回调发送HTTP POST请求的人实际上都会发送$ HTTP_RAW_POST_DATA。许多语言和框架都有库将其解析为HTTP POST参数。 在PubSubHubbub的上下文中,正文不是由params构成的,所以你必须使用较低级别的$ HTTP_RAW_POST_DATA,因为解析XML作为params没有任何意义。
如果您尝试保护回调网址,则有多种方法可以执行此操作:
答案 1 :(得分:1)
原始发布数据是用于提取可由$ _POST访问的POST参数的数据。用户还可以使用post发布未参数化的数据,是的。
答案 2 :(得分:0)
用户将始终将原始POST数据发送到您的脚本。然后PHP将解析它并填充$ _POST。从表单开始POST时,$ _POST等同于:
parse_str($HTTP_RAW_POST_DATA, $data);
var_dump($_POST);
var_dump($data); // yields the same as $_POST
但是,如果您真的想要获取原始POST数据,首选方法是:
$rawPost = file_get_contents('php://input');
...因为$ HTTP_RAW_POST_DATA依赖于always_populate_raw_post_data INI设置,也因为它不适用于 multipart / form-data 内容类型。