今天會想到寫這篇的原因,主要在於我在前公司擔任MIS一職時,曾接手處理智冠科技的儲值流程ServerTalk程式,從接收資料到認證回傳一共五道手續,製作內容就不能提了,在程式的習慣上,在我早期不懂事時,我總認為變數直接定義宣告,SQL資料直接拉出來處理就好,頁面上看不到錯誤也就算成功了,後來在處理我很早寫的一支太陽線獎金計算程式時,因為運算越來越慢,我多方查訪才知道原來是變數在宣告上的問題,頁面上雖然不顯示,但是SERVER端的httpd Log會不斷的產生錯誤記錄,當計算達數十萬次時,會造成SYSLOG的Loading而致運算緩慢,這裡我可以做個範例說明為什麼.....
<?php
if ($_POST['action']) {
$aaa = "123";
do another things;
}
?>
這是一個表單接收最常用的例子,頁面顯示一定沒有問題,但是在LOG裡會出現以下的錯誤訊息....
Notice: Undefined index: action
這個錯誤在一般頁面看不見,但是在設定嚴謹的主機上,會不斷的被記錄下來,不知不覺間造成錯誤,這個原因很簡單,只是警告該變數尚未定義而已,不是什麼大錯誤,有人可能會說,那就在主機設定裡把LEVEL調低就好,少幾個動作不要緊,不過這真的是程式設計師該作的事嗎?? 會造成什麼問題呢....讓我們再接著看下去....
(閱讀全文)




