сохранить данные публикации в файл через php - PullRequest
1 голос
/ 21 июня 2020

Я использую простую форму HTML для отправки HTTP-запроса в следующем формате: key1=value1&key2=value2&key3=value3&key4=value4&key5=value5 и я пытаюсь сохранить данные HTTP-сообщения в текстовый файл, используя PHP

Это код PHP, который я придумал:

$data1 = $_POST['key1'] ;
$data2 =$_POST['key2'] ;
$data3 =$_POST['key3'] ;
$data4 =$_POST['key4'];
$data5 =$_POST['key5'];
$fp = fopen('data.txt', 'a');
fwrite($fp, $_POST['data1'], $_POST['data2'], $_POST['data3'], $_POST['data4'], $_POST['data5']);
fclose($fp);

, но он создает только файл «data.txt», а не добавление любого из значений в текстовый файл

Что я делаю не так?

Ответы [ 2 ]

1 голос
/ 21 июня 2020

Параметры строки запроса должны быть доступны с помощью $_GET, даже если метод запроса - POST.

Кроме того, индексы data1, data2, data3, data4 и data5 не существует в запросе.

fwrite принимает не более 3 аргументов.

Окончательный код должен быть таким:

<?php

$data1 = $_REQUEST['key1'];
$data2 = $_REQUEST['key2'];
$data3 = $_REQUEST['key3'];
$data4 = $_REQUEST['key4'];
$data5 = $_REQUEST['key5'];
$fp = fopen('data.txt', 'a');
fwrite($fp, implode("\n", [$data1, $data2, $data3, $data4, $data5]));
fclose($fp);
0 голосов
/ 21 июня 2020

Изменить

fwrite($fp, $_POST['data1'], $_POST['data2'], $_POST['data3'], $_POST['data4'], $_POST['data5']);

На

fwrite($fp, "$data1,$data2,$data3,$data4,$data5");

Все указанные вами переменные «данных» являются отдельными лицами, они не являются частью массива $ _POST.

И fwrite ожидает одну строку данных, а не набор отдельных, поэтому вам нужно объединить их вместе. Я ставлю между ними запятые, чтобы у вас был шанс отличить их друг от друга, но, очевидно, вы можете изменить это в соответствии со своими требованиями. Документация: https://www.php.net/manual/en/function.fwrite.php

PS, если ваши переменные отправляются в строке запроса URL (а не в теле запроса), вам нужно вместо этого использовать $ _GET для их получения, например это:

$data1 = $_GET['key1'];
$data2 = $_GET['key2'];
$data3 = $_GET['key3'];
$data4 = $_GET['key4'];
$data5 = $_GET['key5'];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...