@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-запросов. В реальном приложении следует учесть эти возможности и предусмотреть соответствующую обработку ошибок.