Следующий скрипт обновляет просмотры страниц, если это от уникального посетителя. Страница извлекает сообщения блога из баз данных и печатает на экране. При первом посещении сообщения блога скрипт должен обновить свое поле просмотра страницы на 1. Но скрипт обновляет просмотр страницы при каждом обновлении страницы, а не записывает только уникальные просмотры.
if($_SESSION[$isPostID] != $isPostID)
{
try
{
$updatePageViews = $db2->prepare("UPDATE articles SET pageviews = pageviews+1 WHERE id = :id");
$updatePageViews->execute(array(':id' => $isPostID));
if($updatePageViews->rowCount() != 1)
{
@createLog("Unable to update pageviews.","Unable to update pageviews!!! Title = [".$istitle."].");
}
else{ $_SESSION[$isPostID] = $isPostID;}
}
catch(PDOException $updatePageViewsERR)
{
$subject = "Pageviews Updation--Update data into database. [PAGE= ".$istitle."]. Error Code: #15";
$text = $updatePageViewsERR->getMessage();
@createLog($subject,$text);
}
}
$ isPostID — это уникальный идентификатор, назначаемый каждому сообщению блога в таблице базы данных.
Примечание. Сессия уже запущена в сценарии.
У вас есть две ошибки в первой строке.
Первое: у вас нет закрывающей скобки в условии. Я предполагаю, что это просто опечатка, иначе это приведет к фатальным ошибкам.
Второе: вы сравниваете $isPostID
в $isPostId
которые две разные переменные. Возможно, именно поэтому это не работает.
Посмотрим, решит ли это проблему
Других решений пока нет …