{"TourDate": "23.01", "Nights": "7", "City": "\u0428\u0430\u0440\u043c-\u044d\u043b\u044c-\u0428\u0435\u0439\u0445", "Hotel": "ALBATROS AQUA BLU RESORT SHARM EL SHEIKH 4+ *", "Board": "AI", "Accomodation": "1 (18+)", "Price": "836", "Month": "01"}
$postdata = (array) json_decode(file_get_contents('php://input'), true);
file_put_contents('file.txt', (string) file_get_contents('php://input') , FILE_APPEND);
// если есть нужные нам поля
foreach ($postData as $value){
file_put_contents('file.txt', $value , FILE_APPEND);
<?php
// для начала посмотреть в доках ЧТО возвращает file_put_contents,
// после этого будет понятно почему в строчке ниже бред
$postdata = (array) file_put_contents('file.txt', file_get_contents('php://input')); , FILE_APPEND);
// если исправить бред сверху, то сначала нужно будет прочитать файл, декодировать в массив из json
// и тогда уже можно будет что-то там проверять
// если есть нужные нам поля
// здесь уже используется другая переменная, $postData вместо $postdata, в этом коде это вообще
// не важно, так как в $postdata все равно ничего толкового не попало.
foreach ($postData as $value){
// по вашему комментарию вроде нужно что-то проверять, однако у вас тупо
// пишется в конец файла значение из массива без каких-либо разделителей
// (теоретически, на самом деле скрипт сейчас сюда не доходит)
file_put_contents('file.txt', $value , FILE_APPEND);
// тут вообще закрывающая } отсутствует.
?>