Как обновить столбец только один раз за IP / сеанс? - PullRequest
0 голосов
/ 05 октября 2018

Я пытаюсь сделать 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 / сеанс.Как я могу это сделать?

1 Ответ

0 голосов
/ 05 октября 2018
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'] не существует.

Это всего лишь пример счетчика один раз за сеанс, а не запрос.

...