pixmicat

Subversion Repositories:
Compare Path: Rev
With Path: Rev
/PIO/ @ 853  →  /PIO/ @ 854
/PIO/lib/lib_common.php
@@ -254,13 +254,16 @@
 
/* 取得 (Transparent) Proxy 提供之 IP 參數 */
function getREMOTE_ADDR(){
// 同時有 VIA 和 FORWARDED_FOR 較可能為 Proxy
if(isset($_SERVER['HTTP_VIA']) && isset($_SERVER['HTTP_X_FORWARDED_FOR'])){
$tmp = preg_split('/[ ,]+/', $_SERVER['HTTP_X_FORWARDED_FOR']);
// 防止 Squid "unknown" 問題,此種情況直接使用 REMOTE_ADDR
// 如果結果為 Private IP 或 Reserved IP,捨棄改用 REMOTE_ADDR
if(filter_var($tmp[0], FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE)){
return $tmp[0];
// 確定有需要才使用 HTTP_X_FORWARDED_FOR
if(defined('TRUST_HTTP_X_FORWARDED_FOR') && TRUST_HTTP_X_FORWARDED_FOR) {
// 同時有 VIA 和 FORWARDED_FOR 較可能為 Proxy
if(isset($_SERVER['HTTP_VIA']) && isset($_SERVER['HTTP_X_FORWARDED_FOR'])){
$tmp = preg_split('/[ ,]+/', $_SERVER['HTTP_X_FORWARDED_FOR']);
// 防止 Squid "unknown" 問題,此種情況直接使用 REMOTE_ADDR
// 如果結果為 Private IP 或 Reserved IP,捨棄改用 REMOTE_ADDR
if(filter_var($tmp[0], FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE)){
return $tmp[0];
}
}
}
return $_SERVER['REMOTE_ADDR'];
/PIO/ChangeLog
@@ -1,18 +1,20 @@
Pixmicat!-PIO 修改紀錄
----------------------
 
2012/12/?? : 7th.Release
2013/?? : 7th.Release
- [config] 增加 DEBUG 除錯開關
- [config] 增加 ROOTPATH 根目錄絕對位置常數
- [config] 增加 TRUST_HTTP_X_FORWARDED_FOR 開關
- [PMCLibrary] 抽出介面,面向介面設計,減低直接對實作的依賴
- [PMCLibrary] PIO 實作介面 IPIO,並修改錯誤拋出機制
- [PMCLibrary] PIO Condition 實作介面 IPIOCondition
- [PMCLibrary] [#39171] 修正 PIO 匯入時間戳問題
- [PMCLibrary] 新增 ILogger 介面及 SimpleLogger 實作,可作為除錯紀錄
- [PMCLibrary] 新增 PIOLoggerInjector,攔截 PIO 錯誤訊息並可提供額外的函式除錯資訊
- [PMCLibrary] 新增 LoggerInjector,攔截錯誤訊息並可提供額外的函式除錯資訊
- [PMCLibrary] Language 改寫為單例
- [PMCLibrary] PMS 去除不必要的架構,僅留單檔 lib_pms.php
- [PMCLibrary] 新增單例類別 PMCLibrary,取代原有各函式庫 global 變數
- [PMCLibrary] 新增全域例外捕捉機制,並可產生除錯紀錄
- [pixmicat] 新增全域例外捕捉機制,並可產生除錯紀錄
- [pixmicat] 修改函式庫載入方式
 
2012/11/22

Property changes:

Name: svn:ignore
+ phpunit.phar

/TestCase
/PIO/config.php
@@ -76,6 +76,7 @@
define("USE_CATEGORY", 1); // 是否開啟使用類別標籤分類功能 (是:1 否:0)
define("USE_RE_CACHE", 1); // 是否使用回應頁面顯示快取功能 (是:1 否:0)
define("USE_XHTML", 1); // 是否回傳 XHTML 檔頭讓瀏覽器以更嚴格的方式解析 [僅限瀏覽器支援者] (是:1 否:0)
define("TRUST_HTTP_X_FORWARDED_FOR", 0); // 是否利用HTTP_X_FORWARDED_FOR抓取Proxy後的真實IP。注意檔頭可能被偽造,若無特別需要請勿開啟 (是:1 否:0)
 
// 模組載入
$ModuleList = array();