Нужно принять POST-запрос php, в чем проблема и как вывести результат для проверки, что запрос и данные приняты?

<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
$number = print_r($_POST, true);
$fp = fopen("phones.txt","w");
fwrite($fp, $number);
fclose($fp);
?>
  • Вопрос задан
  • 1853 просмотра
Решения вопроса 1
ferym
@ferym
Web-Developer
Для отладки можешь вариантами ниже воспользоваться
// Запись в файл debug.txt данных из массива $_POST
file_put_contents('debug.txt',var_export($_POST,true));
 
// Так же можно добавить параметр FILE_APPEND что бы новые результаты добавлялись в конец файла, без его перезаписи
file_put_contents('debug.txt',var_export($_POST,true).PHP_EOL,FILE_APPEND);


###### U P D: #########

Спустя кучу комментов выяснили, что данные приходят в виде массива application/json
{"key1":"value1","key2":"value2","key3":"value3"}

А не как обычный application/x-www-form-urlencoded где данные вида
key1=value1&key2=value2&key3=value3


Поэтому PHP не может понять и обернуть эти данные в переменную $_POST, и надо обработать данные самостоятельно.
Для этого получаем эти данные в сыром виде из потока ввода и прогоняем через json_decode.

$JSON = json_decode(file_get_contents('php://input'),true); // true что бы получить в качестве привычного массива, а не объекта
var_dump($JSON);

Обращаться к данным соответственно через $JSON['key'], а не через $_POST['key']!!!
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
if(isset($_POST['number'])){
  print_r($_POST['number']);
}

и делай запрос формы на ту же страницу.
А дальше поймешь
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы