Счётчик переходов по ссылкам на PHP без SQL

В качестве базы данных выступает обычный ini-файл:

значение1=0
значение2=0
значение3=0

И на странице есть три div-а с ссылками
Нужно, чтобы к числу прибавлялась единица, но только у того ключа, который совпадает с заданной к нему ссылкой (то есть если был переход по второму div-у, то в ini-файле +1 должно быть у значение2)


Ответы (1 шт):

Автор решения: hedgehogues

Чтобы реализовать такую функциональность, вам потребуется использовать JavaScript на стороне клиента и серверный язык программирования (например, PHP) для работы с ini-файлом.

На странице вы можете навесить событие "click" на каждый div с ссылкой и обработать его с помощью JavaScript. В этом обработчике события вы можете отправить AJAX-запрос на сервер с информацией о том, какой div был нажат.

На сервере вы можете использовать PHP для чтения ini-файла, изменения нужного значения и записи измененного файла обратно. После этого вы можете отправить ответ клиенту с информацией об успешности операции.

Пример кода для чтения ini-файла:

$ini_array = parse_ini_file('path/to/ini/file.ini');
$value1 = $ini_array['value1'];
$value2 = $ini_array['value2'];
$value3 = $ini_array['value3'];

Пример кода для изменения значения и записи ini-файла:

$ini_array = parse_ini_file('path/to/ini/file.ini');
$ini_array['value1'] = $ini_array['value1'] + 1;
$ini_array['value2'] = $ini_array['value2'] + 1;
$ini_array['value3'] = $ini_array['value3'] + 1;

// Записываем измененный массив в ini-файл
$ini_string = '';
foreach ($ini_array as $key => $value) {
    $ini_string .= "$key = $value\n";
}
file_put_contents('path/to/ini/file.ini', $ini_string);

Пример кода для отправки AJAX-запроса на сервер и обработки ответа:

// Обработчик события "click" на div с ссылкой
function handleClick(event) {
    // Отправляем AJAX-запрос на сервер
    $.ajax({
        url: '/path/to/server/script.php',
        type: 'POST',
        data: { div_id: event.target.id },
        success: function(response) {
            console.log(response);
        }
    });
}

// Навешиваем обработчик события "click" на div с ссылкой
$('#div1').click(handleClick);
$('#div2').click(handleClick);
$('#div3').click(handleClick);

На сервере вы можете получить идентификатор div-а, который был нажат, с помощью переменной $_POST['div_id'] и выполнить нужную операцию с ini-файлом.

Пример кода на сервере для обработки AJAX-запроса:

$div_id = $_POST['div_id'];

$ini_array = parse_ini_file('path/to/ini/file.ini');

if ($div_id == 'div1') {
    $ini_array['value1'] = $ini_array['value1'] + 1;
} elseif ($div_id == 'div2') {
    $ini_array['value2'] = $ini_array['value2'] + 1;
} elseif ($div_id == 'div3') {
    $ini_array['value3'] = $ini_array['value3'] + 1;
}

// Записываем измененный массив в ini-файл
$ini_string = '';
foreach ($ini_array as $key => $value) {
    $ini_string .= "$key = $value\n";
}
file_put_contents('path/to/ini/file.ini', $ini_string);

// Отправляем ответ клиенту
echo 'Success';

В этом примере мы обрабатываем запрос на сервере, увеличиваем нужное значение в ini-файле и возвращаем клиенту статус "Success". Вы можете расширить этот код, чтобы обрабатывать различные ошибки и возвращать более подробную информацию клиенту.

Обратите внимание, что в этом примере я использовал функцию parse_ini_file для чтения ini-файла, но есть и другие способы работы с такими файлами в PHP.

→ Ссылка