為每篇文章都在使用者那加個COOKIE代表已檢視過合理嗎?

來源:互聯網
上載者:User
最近在做文章系其中一功能,就是統計當前文章的查看次數(流量)


我的文章地址是 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,下次使用者再次開啟網頁查看該篇文章,就會有上次查看的記錄,
這個有點像你做購物網站瀏覽商品的時候,下次再去看的時候,就有你上次瀏覽記錄。

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.