看板 Web_Design 關於我們 聯絡資訊
※ 引述《girlyou24 ( 女)》之銘言: : 查了之前的文章 有寫到計數器的寫法 但他是一直按重新整理 就增加一個 不太準 : <?php : : $fp=fopen('counter/counter1.txt','r'); : : $counter=fread($fp,6); : : fclose($fp); : : $counter=$counter+1; : : $fp=fopen('counter/counter1.txt','w'); : : fwrite($fp,$counter,strlen($counter)); : : fclose($fp); : echo "您是第" .$counter." 位訪客"; : : ?> : 不知道怎麼樣 可以限一個ip 一天只能算一次呢 : 謝謝 自己在做流量統計是用 bbclone 這東西超好用的 官網在這裡 http://bbclone.de/ 這是官方的範例 http://bbclone.de/demo/ 之前我在我自己的部落格有寫過這個東西的介紹 http://f23ko.com/36 使用方式,簡單來講,就是把那個套件抓下來,往網站的根目錄裡一丟 把var資料夾的寫入權限全部開放 (因為記數記錄全部都寫在那邊) 再依照官網的那種方式,在想要計數的網頁加上一段php就好了 插入計數的範例,可以點官網旁邊的 Manual 再點 Using BBClone Stats Examples of code snippets ..... (略) 就可以看到了 其中包含兩個很重要的部分: 1.計數 可以決定觸發計數的位置,以及設定計數的名稱 (就是網頁頁面名稱) 2.顯示 可以在自己網頁上嵌入統計數據,請看官方說明 另外,關於設定方面,可以到/conf 這個資料夾下去找,設定檔都在那邊 而且設定檔的說明寫的都很清楚 原PO想要的功能應該都能調出來 ===================================================== 另外,如果一個網站下有很多網頁都要計數 可以藉由更改 .htaccess 檔的方式去實現 有些免費的虛擬主機或是部落格會有廣告,不論怎麼改都改不掉 就是用.htaccess的方式插進去的 我們用的方法一樣,差別只是:我們插的是計數器 方法很簡單,首先要開啟apache的.htaccess的功能 這點可能會因為版本不一樣而有差異,請自己去google 我自己的.htaccess啟動方法 是去 /etc/apache2/site/sites-available/xxxxx 找到主機的設定檔,把AllowOverride 改掉就好 接著,把.htaccess 裡加入這段 <FilesMatch "\.(php)$"> php_value short_open_tag "Off" php_value auto_append_file "/var/www/xxxxxx/bbclone/count.php" </FilesMatch> 其中 "/var/www/xxxxxx/bbclone/count.php" 是計數頁面的位置,請使用絕對路徑 我習慣把他放在bbclone的資料夾下,因為我不希望進去bbclone看數據時 還一直觸發計數 只要這樣做,以後開啟.htaccess同個資料夾下,或是子資料夾下的所有php檔案 就都會觸發計數器 當然,如果想改成jpg、html、htm,也都可以,只要修改 <FilesMatch "\.(php)$"> 中的正規表示式就可以了 另外,關於count.php的寫法是: <?php //如果連進去的是與這個檔案同個資料夾,或子資料夾下,就不計數 if (strpos($_SERVER['SCRIPT_FILENAME'] , (__DIR__."/"))===false) { //連進來的網址 $link_in_url = "http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; define("_BBC_PAGE_NAME", $link_in_url); //bbclone的計數器標題 //我是設定:顯示網址 define("_BBCLONE_DIR", __DIR__."/"); //bbclone的根目錄 define("COUNTER", _BBCLONE_DIR."mark_page.php"); if (is_readable(COUNTER)) include_once(COUNTER); //echo "是否計數 TRUE<BR>\n"; } //else //{ // echo "是否計數 False<BR>\n"; //} ?> <?php //echo $_SERVER['SCRIPT_FILENAME']."<BR>\n"; //echo __DIR__."/<BR>\n"; //echo COUNTER."<BR>\n"; //echo __FILE__."<BR>\n"; //echo __DIR__."<BR>\n"; //echo dirname(__FILE__)."<BR>\n"; //echo _BBC_PAGE_NAME."<BR>\n"; //echo "<br>\n"; //echo $link_in_url."<BR>\n"; //var_dump($_SERVER); ?> 其中,注解部分是debug用的 可以測試看看有沒有被呼叫到,或是呼叫到的時候會不會計數 以及顯示的正不正確等等 以上這些程式碼不會被任何套件、網頁受限 如果要加掛在不同網站下,只要把整個.htaccess跟bbclone直接copy過去就可以用了 連改都不必改 ======================================================= 另外,我很懶 能找套件來用,就用套件 但如果原PO是在做作業的話 那還是自己寫吧 簡單的流程差不多就是.... 1.訪客點網頁,頁面觸發一個php檔 2.那個php檔讀取一個文件檔,看看有沒有那個IP的記錄,以及有沒有超過24小時 如果符合計數條件,計數,並把訪客資料記錄(IP、時間)在一個文件檔裡 如果沒有,跳過計數 3.完畢 -- 寫做F23,讀做純潔。 http://f23ko.com -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.35.18.75