Регистрация
30 Дек 2013
Сообщения
76
Репутация
-3
Спасибо
0
Монет
0
делаю бота на php, захукал его, получил {

"ok": true,

"result": true,

"description": "Webhook was set"

}



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



294609791_f0d14bcbefd4124efc3883531a199ec1_800.png



текстовый файл появился, но после того, как я отправил сообщение боту, он остаётся пустым, хотя должен наполняться такими данными
294609791_2c80e955c5c784c889c3795cbc6f1c4f_800.png

А ещё в моём коде появляется ошибка.
294609791_8fe890d18c6832076ba520f2ece1d563_800.png

Подскажите пожалуйста, как исправить ошибку и почему данные не уходят в текстовый файл?
 
В вашем коде есть ошибка, связанная с переменной $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.
 
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, ""); уже не нужна
 
Назад
Сверху