Skip to content

Instantly share code, notes, and snippets.

@tweenpix
Created March 6, 2024 06:56
Show Gist options
  • Save tweenpix/92cc8f977c3e8a1a3e1a2ea9b7c4d8df to your computer and use it in GitHub Desktop.
Save tweenpix/92cc8f977c3e8a1a3e1a2ea9b7c4d8df to your computer and use it in GitHub Desktop.
loging post vars in cvs format file
<?php
/*
Автор: apexweb.ru
Запись в лог файл введенного адреса в формат CSV
*/
// Ограничение размера входных данных
$max_input_size = 1024; // Подстраивайте под свои нужды
// Получаем данные из POST запроса
$searchData = json_decode(file_get_contents('php://input'), true);
$searchField =$searchData['search'];
// Проверяем, получены ли данные и существует ли переменная search
if (!empty($searchField)) {
if (strlen($searchField) > $max_input_size) {
// Запись ошибки в журнал или обработка слишком больших данных
$response = ['status' => 'error', 'message' => 'Размер входных данных превышает максимально допустимый.'];
} else {
// Записываем данные в лог
$fields = [date('d-m-Y H:i:s'), $_SERVER['REMOTE_ADDR'], $searchField];
log_msg($fields);
// Возвращаем успешный ответ
$response = ['status' => 'success', 'message' => 'Адрес '.$searchField.' получен и записан'];
}
} else {
// Если переменная search не была получена
$response = ['status' => 'error', 'message' => 'не вышло:('];
}
// Функция записи в лог
function log_msg($msg)
{
$log_file = $_SERVER['DOCUMENT_ROOT'] . '/logs/livesearch.log';
// Открытие файла в режиме дозаписи
$fp = fopen($log_file, 'a+');
if ($fp) {
// Экранирование спецсимволов и запись в CSV
fputcsv($fp, $msg,";");
fclose($fp);
} else {
// Ошибка при открытии файла для записи
exit('Не удалось открыть файл журнала для записи.');
}
}
// Возвращаем ответ в формате JSON
header('Content-Type: application/json');
echo json_encode($response);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment