@johnpaul.blick
Для создания счетчика уникальных просмотров на PHP можно использовать различные подходы. Один из таких подходов заключается в использовании файла cookie для хранения информации о том, что пользователь уже посетил страницу. Вот пример кода, который можно использовать:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
// Имя файла cookie, который будет использоваться для хранения информации о просмотрах $cookie_name = "page_views"; // Проверяем, установлен ли файл cookie if(!isset($_COOKIE[$cookie_name])) { // Если файл cookie не установлен, увеличиваем счетчик просмотров $count = 1; // Устанавливаем файл cookie с именем $cookie_name и значением $count на 24 часа setcookie($cookie_name, $count, time() + (86400 * 1), "/"); } else { // Если файл cookie уже установлен, получаем его значение и увеличиваем счетчик просмотров $count = ++$_COOKIE[$cookie_name]; // Обновляем файл cookie с новым значением $count на 24 часа setcookie($cookie_name, $count, time() + (86400 * 1), "/"); } // Выводим счетчик просмотров echo "Эта страница была просмотрена $count раз(а)"; |
В этом примере мы используем функцию setcookie()
для установки файла cookie с именем $cookie_name
и значением $count
. Если файл cookie уже установлен, мы получаем его значение с помощью переменной $_COOKIE[$cookie_name]
и увеличиваем счетчик просмотров на 1.
Обратите внимание, что мы также устанавливаем время жизни файла cookie на 24 часа с помощью параметра time() + (86400 * 1)
. Это означает, что файл cookie будет храниться на компьютере пользователя в течение 24 часов, даже если он закроет браузер.
@johnpaul.blick
Кроме использования файла cookie, можно также использовать базу данных для хранения информации о просмотрах. Вот другой пример кода, который демонстрирует это:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
<?php // Параметры подключения к базе данных $servername = "localhost"; $username = "username"; $password = "password"; $dbname = "database"; // Устанавливаем подключение к базе данных $conn = new mysqli($servername, $username, $password, $dbname); // Проверяем успешность подключения if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } // Имя таблицы, которая будет использоваться для хранения информации о просмотрах $table_name = "page_views"; // Получаем IP-адрес пользователя $ip = $_SERVER['REMOTE_ADDR']; // Проверяем, существует ли запись о просмотре для текущего IP-адреса $sql = "SELECT * FROM $table_name WHERE ip = '$ip'"; $result = $conn->query($sql); if ($result->num_rows == 0) { // Если запись не существует, увеличиваем счетчик просмотров $count = 1; // Вставляем новую запись в базу данных с IP-адресом и счетчиком просмотров $sql = "INSERT INTO $table_name (ip, views) VALUES ('$ip', $count)"; $conn->query($sql); } else { // Если запись уже существует, получаем текущее значение счетчика просмотров и увеличиваем его $row = $result->fetch_assoc(); $count = ++$row['views']; // Обновляем запись в базе данных с новым значением счетчика просмотров $sql = "UPDATE $table_name SET views = $count WHERE ip = '$ip'"; $conn->query($sql); } // Выводим счетчик просмотров echo "Эта страница была просмотрена $count раз(а)"; // Закрываем подключение к базе данных $conn->close(); ?> |
В этом примере мы используем базу данных MySQL для хранения информации о просмотрах. Сначала мы устанавливаем соединение с базой данных, затем проверяем, существует ли запись о просмотре для текущего IP-адреса. Если запись не существует, мы вставляем новую запись с IP-адресом и значением счетчика просмотров равным 1. Если запись уже существует, мы получаем текущее значение счетчика просмотров из базы данных и увеличиваем его на 1. Затем мы обновляем запись в базе данных с новым значением счетчика просмотров. Наконец, мы выводим счетчик просмотров на экран и закрываем соединение с базой данных.
Обратите внимание, что код не обрабатывает случаи, когда подключение к базе данных не выполнено успешно или имеются ошибки при выполнении SQL-запросов. В реальном приложении следует учесть эти возможности и предусмотреть соответствующую обработку ошибок.