最近在做文章系其中一功能,就是統計當前文章的查看次數(流量)
我的文章地址是 news.php?id=123
網上找到個方法
$gid = $_GET["id];if( !isset($_COOKIE["user"]) ){ setcookie("user","newGuest",time()+3600); }else { setcookie("user","oldGuest"); } if ( $_COOKIE["user"] != "oldGuest") {$hits_now = $row["hits"]+1;$pdo->exec("UPDATE `gamedb_game` SET `hits`='$hits_now' WHERE `id` = '$gid'");}
這樣的話,同一瀏覽器第二次重新整理,就不會重複增加查看數了
但一想不對,去其他文章一試,即便第一次瀏覽,也不增加查看了
所我想到不如這樣?
$gid = $_GET["id];if( !isset($_COOKIE["user"]) ){ setcookie("user","newGuest",time()+3600); }else { setcookie("user","oldGuest_$gid"); } if ( $_COOKIE["user"] != "oldGuest_$gid") {$hits_now = $row["hits"]+1;$pdo->exec("UPDATE `gamedb_game` SET `hits`='$hits_now' WHERE `id` = '$gid'");}
把oldGuest改成oldGuest_$gid 有個文章id加在後面,就有唯一性了吧?
但這樣的話,某程度上會對使用者的瀏覽器產生不良的反應嗎?
還是其他cms都是這樣做的?
如果要寫入sql要匹配是否第一次的話,就太複雜了
想到的只有cookie
這樣的方法 對我自己主機,還有對使用者,會如何?
回複討論(解決方案)
查看數增加重新整理一次增加一次沒問題呀,
如果實在想用你的方法不讓它看出來可以放到緩衝中,設定一個時間抽,指定時間取一次,很多網站是這樣做得。
你的方法可以試將文章id放到數組,然後序列話一下,存入cookie試一下下。
將使用者查看的文章標題記錄到cookie,下次使用者再次開啟網頁查看該篇文章,就會有上次查看的記錄,
這個有點像你做購物網站瀏覽商品的時候,下次再去看的時候,就有你上次瀏覽記錄。