2014年5月21日 星期三

php 版本升級 語法錯誤問題與處理

目前將就有程式碼轉至PHP 5.4版,程式碼中的部分函式需要做調整:

  1. ereg('^[0-9]+$',$ParkingOener) 會出現Deprecated: Function ereg() is deprecated 的警告, 新版的PHP已經將 ereg()移除,修改方式改為:preg_match("/^[0-9]+$/",$ParkingOener)
  2. 目前版本針對seesion的處理更加簡單,早期使用前還需要session_register()...等,現在是直接宣告session就直接使用,所以就得程式碼移到新主機後,會出現Call to undefined function session_is_registered() ... 如
    if (!session_is_registered('ParkingSelYearSem'))
        session_register('ParkingSelYearSem');
    }
    則改寫為
    if (!isset($_SESSION['ParkingSelYearSem'])) {
       $_SESSION['ParkingSelYearSem'] = 'XXX';
    }
  3. date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Asia/Chongqing' for 'CST/8.0/no DST' instead in /var/www/html/cis/stucis/include/initialize.php on line 7,
    處理方式:
    設定 php.ini,加入 date.timezone = "Asia/Taipei"
  4. short tag 問題,一般來說 與 都能表示是PHP程式碼的區段,不過先決條件是 php.ini 中的 short_open_tag=On ,如果移轉到新的SERVER發現有問題,請先查看此選項。

2014年5月14日 星期三

PHP 套印 rtf (UTF8中文亂碼)

今天在處理網頁程式由Big5轉到UTF-8,資料庫與程式字碼編碼都弄得差不多沒問題,在測試使用者套印出WORD 的rtf 格式時居然出現文件毀損無法開啟的大問題...

或者是出現文字亂碼

我印象中有看過一篇文章,記得說過Windows 的系統預設都是Big5編碼的模式,所以我試著將UTF-8的字碼又轉回Big5編碼來測試看看是不是可以回復正常...
測試結果正常...

是否此法可以解決開啟WORD中文編碼UTF-8的問題可能還需觀察一下...

2014年5月13日 星期二

透過 command line 測試 mysql 連線

目前架設伺服器的規畫都是網頁與資料庫分開,有時候會遇到網頁無法連結資料庫的問題,曾遇到過是DNS queryg 失敗導致網頁伺服器找不到DB位址,或是被自己的防火牆擋住了...

有時可以在網頁SERVER透過Command line的方式 來測試可不可以連線到DB SERVER,來排除掉一些可能因素,對於找出問題有一些幫助....

mysql  -h 資料庫IP -P 資料庫阜號 -u 資料庫使用者帳號 -p

參數說明 :
    -h :資料庫IP
    -P:資料庫MySQL的阜號(如果沒改阜號就不用此參數,我基於安全性都會把MySQL的阜號改掉)
    -u:登入的使用者帳號
    -p: 可以留空白待會需要你輸入