Я нашел решение очень низкого качества и просто быстрый и грязный способ сделать это.
Я тоже разработал нечто подобное и сформулировал быстрый метод, который работает без избыточности.
Мне нужен был счетчик для каждого доступа к профилю другого пользователя.
Псевдо:
- Создать таблицу с именем зрителя и именем зрителя (таблица daily_views).
- Проверьте, существует ли имя зрителя с именем зрителя (в той же строке).
- Если они не существуют, обновите счетчик пользователей +1 (в таблице пользователей).
- Иначе сделайтеНичего.
- Сбрасывает все значения таблицы null каждые 24/12 часа с помощью задания cron.
Это запретит тому же лицу, имеющему доступ к тому же профилю пользователя, добавлять 1 к счетчику при обновлении.на весь день (или 12 часов), в то время как вышеупомянутое решение Гленна Нельсона действительно добавит 1 к счетчику, но запретит добавление к каждому счетчику пользователя одновременно.
Не толькоэтот, но если вы выйдете из системы и снова войдете на веб-сайт, он просто снова добавит к счетчику, в котором в некоторых случаях это будут использовать тролли и хакшорские подражатели (поскольку сеанс уничтожается и начинается снова).
Вот мои примеры таблиц:
users
{
user_id INT(8) auto increment, user_name varchar(32), user_counter INT(12)
};
daily_views
{
view_id INT(8) auto increment, viewer_name VARCHAR(32), viewee_name VARCHAR(32)
};
Вот пример кода, который я написал:
<?php
session_start();
$uname = $_SESSION['username'];
$vieweepage = $_GET['name']; //gets the name of the persons page/profile via previous page/form
$connect = mysql_connect("localhost","user","password") or die("Couldn't connect; check your mysql_connect() settings");
$database = mysql_select_db("database") or die("Could not locate database!");
$query = mysql_query("SELECT user_counter from users");
$query = mysql_fetch_row($query);
$counter = $query[0];
$viewcheck = mysql_query("SELECT viewer_name from daily_views WHERE viewee_name='$vieweepage'");
$viewrow = mysql_num_rows($viewcheck);
$newcounter = $counter + 1;
if($viewrow == 0)
{
$update = mysql_query("UPDATE users SET user_counter='$newcounter' WHERE user_name='$vieweepage'");
$insert = mysql_query("INSERT into daily_views (viewer_name, viewee_name) VALUES ('$uname', '$vieweepage')");
}
?>