分類
TatterTools

TT引用傳送帶的user agent

剛寫好一篇文章, 要將文章引用回去朋友的 blog “偉的1978部落格”, 因為他之前受 trackback 攻擊之苦, 所以正在找方法處理, 詳情請參閱: http://jin.tw/jin/291, 由於他會 check user agent, 結果造成我要 trackback 時發生失敗的回應, 於是我就再找看看 tt 的 trackback 機制是不是有這個問題, 結果查到 component 下的 Eolin.PHP.HTTPRequest.php 檔內的第 40 行, 就是送 user agent 而且是 Mozilla 如下, @@”

fwrite($socket, “User-Agent: Mozilla/4.0 (compatible; Eolin)\r\n”);

為了要引用成功, 於是我先將該行 mark 起來, 就成功地送出引用通知… 但, 朋友可能頭又要開始痛了, 因為 tt 預設的引用通知是會帶 user agent 的….

分類
TatterTools

TT時間不對

其實發現tt時間不對也不是現在才發現, 只是一直沒去查問題, 在沒有追蹤code的狀況下, 想說先看看別人架tt內文章的時間對不對來確認一下, 先到朋友 “偉的1978部落格” 看一下, 結果原本想先貼一篇comment後再看時間, 想說不要找最新的文章貼, 隨手點一篇舊文章, 說來還真巧, 隨便一點, 就點到他也發現時間不對的這篇文章, 文章連結: http://jin.tw/jin/288 還真不是普通巧, 莫非是天意…

不過看了朋友的解決方法, 很直接也很乾脆, 就是不要看 OS 的變數, 這也 OK, 但我還是想找原因, 怎麼會 $_ENV[‘OS’] 變數會沒有值呢? 先用 phpinfo() 測一下, 確定有值後, 再測其他的 environment variables, 結果都沒有值, @@”

所以就想找找原因, 找了老半天, 終於找到了, 原來在 php 裡預設的 variables_order = “GPCS” 也就是 $_GET, $_POST, $_COOKIE, $_SERVER 都是有的, 但 $_ENV 就是預設沒有, 是 performance 考量, 所以沒有 enable $_ENV, 建議用 getenv() 方式來取得環境變數, 接下來就是兩條路可以走, 一為將 variables_order = “GPCSE” , 另一就是將 tt 的 code 由 $_ENV[‘OS’] 修改為 getenv(‘OS’) 這樣就好了, 還好存在 db 的時間資料都是對的, 就是時區問題而已啦….