Я не могу прочитать тело моего POST HTTP-запроса с помощью PHP! - PullRequest
18 голосов
/ 29 июля 2010

Я никогда не использовал PHP, но сейчас мне нужно написать файл PHP, который отображает в файле журнала содержимое тела HTTP-запроса POST.

Я читал, что вы можете получить доступ к переменным тела через массив _POST. К сожалению, он кажется пустым, хотя я уверен, что в теле моего HTTP-запроса есть что-то!

Что я должен использовать, чтобы быть на 100% уверенным в содержимом моего тела HTTP?

Спасибо.

Ответы [ 4 ]

59 голосов
/ 29 июля 2010
$post_body = file_get_contents('php://input');

php://input позволяет читать необработанные данные POST.Это менее ресурсоемкая альтернатива $HTTP_RAW_POST_DATA и не требует специальных директив php.ini.php://input недоступно с enctype = "multipart / form-data".

(Источник: http://php.net/wrappers.php)

2 голосов
/ 29 июля 2010

Глобальная переменная $_POST, а не _POST.Также может случиться так, что вы отправляете данные методом GET, и в этом случае вам нужно использовать глобальную переменную $_GET.

Если вы хотите проверить POST или GETМетод, вы можете использовать глобальную переменную $_REQUEST.Пример кода ниже:

<html>
<body>
<form method="POST" action="postdata.php">
<input type="text" name="mydata" />
<input type="submit">
</form>
</body>
</html>

file postdata.php :

<?php

$result = $_POST['mydata'];
echo $result;
2 голосов
/ 29 июля 2010
0 голосов
/ 29 июля 2010

Может быть, вы ошиблись.Правильное имя массива $_POST.

Попробуйте это

<?php
var_dump($_POST);

и посмотрите, что произойдет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...