隨手筆記2011-12-20

#php5的類別繼承關係中,self所代表的是self關鍵字所在的類別,例如self寫在父類別中,self代表的就是父類別。例如父類別裡有一個方法裡有self關鍵字,而在子類別裡呼叫了這個方法,即代表子類別所建立的物件會用到self所代表的父類別的屬性或方法。 閱讀全文〈隨手筆記2011-12-20〉

隨手筆記2011-12-16

#Zend 的 db 如果是透過 resource 的方式啟用,而且isDefaultTableAdapter有設為true,那麼所有的Zend_Db_Table類別或Zend_Db_Table_Abstract類別物件裡的 $_defaultDb 就都會被指成 db 物件。實際上是在bootstrap的過程裡,透過Zend_Application_Resource_Db裡的init()來指定的。 閱讀全文〈隨手筆記2011-12-16〉

隨手筆記2011-12-14

#Gmail的html郵件可以呈現行內樣式,但有牽涉到背景圖片的樣式一樣沒有效果。

#memory_get_usage(),php函數,記憶體用量檢查。

#網頁背景是白色是,firefox會自動將列印時列出色彩的功能打開;如果網頁有其他顏色的背景,那麼firefox在列印時就會自動將此功能關閉,但仍可手動開啟。 閱讀全文〈隨手筆記2011-12-14〉

隨手筆記2011-12-08

#關於HTML email正文裡的樣式圖片的處理,yahoo、msn和gmail的方式都不一樣。yahoo幾乎是照單全收,msn只有套用文字樣式,有關圖片的部份不管用,gmail的樣式內容全都不管用。

#Zend_Db_Select的where方法基本上是一次處理一個條件。

#Zend_Db_Select的getPart方法可以取得Sql語法。例如Zend_Db_Select::getPart(‘where’)可以取得經過where方法處理的條件陣列。 閱讀全文〈隨手筆記2011-12-08〉

儲存物件至Session

我們要使用session之前必須先呼叫session_start()函數,而要儲存物件到session也有一個先決條件,就是該物件的類別必須在session_start之前就已經存在,也就是說該物件的類別必須在session_start之前就先引入,否則存到session裡的物件就會是 __PHP_Incomplete_Class Object這類型的物件。 閱讀全文〈儲存物件至Session〉

檢查$_POST內容是否超過限制

$_POST的大小限制設定在php.ini的post_max_size這個指令裡,我們可以直接指定以byte為單位的數字,例如1024,也可以直接加上單位,例如1K,但1和K之間不能有任何空格,否則就會出現Internal Server Error的訊息。另外,根據php官網的訊息,上述單位最大可使用到g。

雖然有指定post的大小限制,但當超過限制的時候,可能不一定能夠看到錯誤訊息,這取決於php.ini裡的display_startup_errors指令是否設為on,當此指令設為off(預設)時,我們是看不到錯誤訊息的。 閱讀全文〈檢查$_POST內容是否超過限制〉

zend_framework的autoloader

php在5.1.2之後加入autoload的功能,目的是為了使用放在其他檔案的類別來建立物件時,省去includerequire的步驟,讓php自行載入類別檔案。這個載入的過程,使用者可以自行設計,一般可以透過建立__autoload()函數來建立自動載入的的過程,而這個函數接受一個參數,就是類別名稱。例如:

function __autoload($classname){

require $classname . “.php”;

} 閱讀全文〈zend_framework的autoloader〉

來自POST資料的身份驗證

到目前為止,為了避免$_POST是來自網路上機器人的隨意滲透,進而導致資料庫資料毀損,我一般會先判斷是不是登入的會員。不過,突然來的一個靈感:如果要做破壞的人並不是隨意搜尋目標,而是有心人,其實是可能先註冊一個會員身份,然後在登入會員後,再利用同一個瀏覽器session進行資料的POST測試,那麼前述提到的判斷就不足夠了。 閱讀全文〈來自POST資料的身份驗證〉

Proudly using Dynamic Headers by Nicasio WordPress Design