Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Ошибка в коде PHP

Алексей Балакирев Ученик (108), на голосовании 1 год назад
делаю бота на php, захукал его, получил {
"ok": true,
"result": true,
"description": "Webhook was set"
}

теперь пишу код с помощью которого смогу передавать параметры, ответ от пользователей я буду получать в текстовый файл.


текстовый файл появился, но после того, как я отправил сообщение боту, он остаётся пустым, хотя должен наполняться такими даннымиА ещё в моём коде появляется ошибка.Подскажите пожалуйста, как исправить ошибку и почему данные не уходят в текстовый файл?
Голосование за лучший ответ
Татьяна Просветленный (36374) 1 год назад
В вашем коде есть ошибка, связанная с переменной $now, которая не определена. Вместо этого вы должны определить эту переменную перед использованием. Чтобы записать данные в текстовый файл, вы можете использовать функцию file_put_contents(). Вот пример кода, который записывает данные в файл message.txt:
 function writeLogFile($string, $clear = false){ 
$log_file_name = __DIR__."/message.txt";
if($clear == false) {
$now = date("Y-m-d H:i:s");
file_put_contents($log_file_name, $now." ".print_r($string, true)."\r\n", FILE_APPEND);
}
else {
file_put_contents($log_file_name, "");
}
}

$data = file_get_contents('php://input');
$data = json_decode($data, true);
writeLogFile($data, true);
echo file_get_contents(__DIR__."/message.txt");
Этот код записывает данные в файл message.txt, используя функцию file_put_contents(). Если параметр $clear равен false, то он добавляет данные в конец файла, а если он равен true, то он очищает файл перед записью. Затем он читает данные из файла и выводит их на экран с помощью функции file_get_contents().
Чтобы исправить ошибку, вам нужно определить переменную $now перед ее использованием. Вот исправленный код:
 function writeLogFile($string, $clear = false){ 
$log_file_name = __DIR__."/message.txt";
if($clear == false) {
$now = date("Y-m-d H:i:s");
file_put_contents($log_file_name, $now." ".print_r($string, true)."\r\n", FILE_APPEND);
}
else {
$now = date("Y-m-d H:i:s");
file_put_contents($log_file_name, "");
}
}
Однако, чтобы понять, почему данные не записываются в файл, нужно убедиться, что вы правильно настроили вебхук и что ваш код правильно обрабатывает данные, которые он получает. Если вы уверены, что ваш код правильно обрабатывает данные, то проблема может быть связана с правами доступа к файлу. Убедитесь, что ваш скрипт имеет права на запись в файл message.txt.
N-223 G-305Гений (61432) 1 год назад
На ошибки проверила ответ нейросети?)))
Татьяна Просветленный (36374) N-223 G-305, Либо отвечай на вопрос либо ловишь бан. спам ботов тут не нужны такие как ты
step Мастер (1313) 1 год назад
$now = date("Y-m-d H:i:s");
f($clear == false) {

исправь
Cepгей Мудрец (12435) 1 год назад
function writeLogFile($string, $clear = false){
$log_file_name = __DIR__."/message.txt";
$now = date("Y-m-d H:i:s");
if($clear == false) {
file_put_contents($log_file_name, $now." ".print_r($string, true)."\r\n", FILE_APPEND);
}
else {
file_put_contents($log_file_name, $now." ".print_r($string, true)."\r\n");
}
}

$data = file_get_contents('php://input');
$data = json_decode($data, true);
writeLogFile($data, true);
echo file_get_contents(__DIR__."/message.txt");

Конструкция file_put_contents($log_file_name, $now." ".print_r($string, true)."\r\n"); затирает содержимое файла новым содержанием и file_put_contents($log_file_name, ""); уже не нужна
Похожие вопросы