Я создаю грубый счетчик просмотров для моего сайта, который будет обновлять базу данных, а затем установить cookie с идентификатором страницы, чтобы другое представление не встало. Сегодня я понял, что очень быстро пользователь может иметь кучу файлов cookie в зависимости от того, сколько страниц они посещают на сайте. Есть ли лучший способ только вставить один просмотр для каждого пользователя или этот метод cookie является адекватным. Благодарю.Могут ли печенье влиять на производительность?
PHP Просмотр Update Код:
public function updateViews ($id) {
$db = Database::getInstance();
//Set Cookie to indicate viewed
setcookie($id, rand(), time()+3600*24*365*10);
//Set required variables
$currentViews = $this->getData($id)->fetch(PDO::FETCH_ASSOC)['views'];
$newViews = $currentViews + 1;
if (isset($_COOKIE[$id])) {
//Do nothing because cookie isset
} else {
//Define Query
$query = "UPDATE coils SET `views` = '".$newViews."' WHERE `uniqueid` = '".$id."'";
//Prepare Query
$prepareQuery = $db->getConnection()->prepare($query);
//Execute Query
$prepareQuery->execute();
}
$currentViews = number_format($currentViews);
//List results to user
if ($currentViews > 1) {
$this->views = $currentViews . " Views";
} else if ($currentViews <= 1) {
$this->views = $currentViews . " View";
}
}
У них не может быть кучи печенья .. http://browsercookielimits.squawky.net/ –
@aaronxxx О печных страницах cookie. Возможно ли это, и будет ли это предел для файлов cookie? –
В соответствии с этим сайтом @aaronxxx вы не должны загружать их из своего домена более чем с 50 кукисами, превышающими 4096 байт. Если вы превышаете это, тогда вам следует рассмотреть возможность использования сеансов. Не связанный, вы должны использовать только простой оператор if, а не ваш 'isset' (например,' if (! Isset ($ _ COOKIE [$ id])) вместо использования if/else. –