Я пытаюсь сделать hit counter
, но это hit counter
обновить столбец counter
каждый раз, когда страница загружается.
$mread = $conn->prepare("UPDATE bn_publicacao SET counter = counter + 1 WHERE id = :id");
$mread->bindParam(':id', $id, PDO::PARAM_INT);
$mread->execute();
Я хочу обновить counter
только один раз за IP / сеанс. Как мне это сделать?
session_start();
НЕОБЯЗАТЕЛЬНЫЙ:
Проверьте, начался ли сеанс.
Здесь могут быть функции, которые устанавливают конфигурацию сеанса.
if(function_exists('session_status')){
if(session_status() != PHP_SESSION_ACTIVE)die('no session');
}else{
die('no session');
};
После того, как сессия была запущена и настроена, вы можете использовать переменные в $ _SESSION.
if(empty($_SESSION['counter']))
{
$_SESSION['counter'] = 1;
$mread = $conn->prepare("UPDATE bn_publicacao SET counter = counter + 1 WHERE id = :id");
$mread->bindParam(':id', $id, PDO::PARAM_INT);
$mread->execute();
};
Таким образом, он будет выполнять код запроса только в том случае, если $ _SESSION [‘counter’] не существует.
это только пример счетчика один раз за сеанс, а не запрос.
Других решений пока нет …