2008-06-30: 修改為不限 blogspot 專用,請參考新版 bookmarklet。
官方說明的具體步驟中,首先的 <body onLoad="javascript pageTracker._setVar('test_value');">
跟後面「設定篩選器」看起來似乎沒關聯:
請注意「篩選器模式」的值是怪異的「無報告」,換成英文版一看:
封存
2008-06-30: 修改為不限 blogspot 專用,請參考新版 bookmarklet。
官方說明的具體步驟中,首先的 <body onLoad="javascript pageTracker._setVar('test_value');">
跟後面「設定篩選器」看起來似乎沒關聯:
請注意「篩選器模式」的值是怪異的「無報告」,換成英文版一看:
變成 test_value 了 …… 跟 pageTracker._setVar('test_value');
設的值吻合 —— 所以是翻譯沒做好啊。
實際上 pageTracker._setVar('test_value');
會在電腦上儲存一個 __utmv=123456789.test_value 的 cookie,其中 123456789 每個網站都不一樣。一旦訪客電腦裡有這個 cookie,在 Google Analytics 的「訪客 - 使用者定義」就會出現:
然後設定「篩選器模式」為 test_value,該報告就會被排除,不再出現。
如此一來,具體流程「建立會設定 cookie 的網頁 → 造訪該網頁以設定 cookie → 設定篩選器排除具有該 cookie 的電腦」應該很清楚了。
還沒完,blogspot 使用者還有問題:要在哪建立新網頁?
新網頁需要在 body onLoad 動手腳,而且不能讓一般訪客看到(有看到就會被下 cookie 而遭排除)—— 很麻煩。
所以我想改用 bookmarklet 的方式,內容就是找到 pageTracker
,請他 ._setVar
即可。原始碼拆開如下:
javascript: if(pageTracker) { var v=prompt(%22請輸入要用於「篩選器模式」的字串:%22,%22test_value%22); if(v!=null) { pageTracker._setVar(v);alert(%22已設定 cookie: %22+v); } } void 1
將 bookmarklet 加進書籤便可使用 → 設定排除用的 Cookie (Google Analytics)
這樣就完成了,我測了兩天,流量有正確尷尬下去,所以應該是有效的。
CodeIgniter 社群的 Session library 數量很多,而且越來越多 …… 之前我選用 OB Session 不料沒多久作者便離開 CI 轉乘 Kohana,害我現在想換 lib 又不曉得要換哪支了。
session | API | cookie 內容 | 資料庫 | 已應用於 | |
---|---|---|---|---|---|
CI_session | CI | 所有資料 | 選用 | ||
DB Session | CI | 獨立 (1.5) | SID | 必須 | auth, FreakAuth |
OB Session | CI | 取代 (1.5) | SID (db) | 選用 | |
NG Session | CI | 取代 (1.6) | SID (db) | 選用 | |
PHPSession | PHP | 獨立 (無) | SID | ||
Native Session | PHP | 取代 (1.5) | SID | sentry | |
RA session | PHP | 獨立 (1.5) | SID | RA Auth | |
KNDB Session | PHP | 取代 (1.6) | SID | 選用 |
CI_session 會建立自己的 session 資料(而非使用 PHP 既有的 $_SESSION 變數),瀏覽器必須啟用 cookie,而且會失去 $_SESSION 的某些特徵(後述)。這邊表格填 CI 就表示使用 CI 的 session,填 PHP 則是使用 PHP 的 $_SESSION。
獨立表示單獨的 library,例如 DB Session 要以 $this->db_session
存取;取代表示直接覆蓋 CI 的 Session 類別,所以程式寫法除了新增功能(例如 flashdata)之外沒有改變。
後面加註的是最接近的 CI 版本號,由於 CI 1.6 才正式新增 flashdata 功能和 sess_time_to_update(重新產生 session id)選項,所以舊的 lib 使用前可能需要修改才會與 CI_session 一致。註:即使版本相符,還是要留意選項歧義,例如 OB Session 的 session_expiration
設為 0 有特殊意義。
一般 session 只會把 SID (session id) 存進 cookie,但是 CI_session 會把所有資料都存進去,拿到 cookie 的壞人就有機會解出資料內容。
表格填 SID 表示只會把 SID 放進 cookie;填 SID (db) 表示若用資料庫儲存資料,cookie 內容就只會放 SID(若沒資料庫,還是會全放 cookie)。
另外 PHP 的 $_SESSION 在沒有 cookie 支援時仍可以用 URL 來傳 SID,只是這邊的 lib 除了 PHPSesson 在原始碼好像沒看到之外,都還是設計為需要 cookie 支援的。即使可以使用基於 URL(禁用 cookie)的 session,CodeIgniter 也要稍微修改才能用網址傳 SID 吧。
把 session 資料存在資料庫。CI_session 僅儲存 SID, ip_address 等資料,以用於驗證;其他 lib 會更進一步將 session->set_userdata
設的資料存入名為 session_data 的 text 欄位。
另外,雖然只有 KNDB Session 提供類似標準 CI 的選用資料庫選項,但其他基於 PHP $_SESSION 的 lib 似乎也能由 php.ini 的 session.save_handler 指定用資料庫儲存資料。
記錄該 library 已被包含於哪些認證用的 library。
最後看來,這些 lib 主要就分 CI Session 和 PHP Session 兩派,其餘選發佈順序晚的應該就差不多了。
感謝提供~自動重新整理真的慘
神奇的解法!
取得BlogId >> data:blog.blogId
不妙,我也沒留底了
大大
檔案已失聯,跪求檔案
現在 Apple Music 幾乎都找的到。
https://itun.es/tw/JeB9o
'96 年在泰國工作接觸到 carabao, 隔年亞洲金融風暴泰國重傷,大街小巷都在唱 made in Thailand ⋯