PHP

[PHP] 使用 move_uploaded_file 上傳中文檔名的問題

在 PHP 中由網頁上傳檔案的功能,比起很多語法是簡單得太多了!但是如果用來上傳中文檔案名稱的檔案,許多人都會踢到鐵板。不是無法上傳,就上傳後檔名怪怪的。以下我們就針對這個問題來做一些研究。

PHP上傳中文檔案發生錯誤的原因在於中文版的伺服器若是使用 Big5 在編碼,而由網頁送過來資料卻是以 UTF8 來編碼,如此一來在接收時就會產生編碼的錯失,導致檔案上傳的失敗。我們建議您修改的方式,就是將接收到的檔名,由 UTF8 轉為 Big5 的編碼,最後再儲存即可。

[PHP] 使用 move_uploaded_file 上傳中文檔名的問題 閱讀全文 »

[PHP] PHP4 程式轉 PHP5 的注意事項

PHP5 預設 register_globals = off
所以 PHP4 的舊程式會造成許多問題,
最常見的就是PHP程式當中有很多可以取得網頁資料的方法,舉例來說:

$_GET、$HTTP_GET_VARS:這個陣列儲存著從網址「?」之後的變數名稱與資料
$_POST、$HTTP_POST_VARS:這個陣列儲存著表單用POST過來的資料
$_SESSION、$HTTP_SESSION_VARS:這個陣列儲存著session變數
$_COOKIE、$HTTP_COOKIE_VARS:這個陣列儲存著cookie變數
$_FILES:這個陣列儲存著從表單上傳的檔案
$_SERVER、$HTTP_SERVER_VARS:這個陣列儲存著伺服器與用戶端瀏覽器相關的環境變數

在PHP3和PHP4.1.0之前的版本,php.ini 設定的 register_globals = on,但在PHP5卻預設改成 register_globals = off,這會導致如 $HTTP_GET_VARS 等 $HTTP_ 開頭的變數不能等同$_GET來使用,PHP4手冊也建議使用 $_GET。

要修正這個問題,最簡單的是把 php.ini 改成 register_globals = on, 不過基於安全的考量, 我們實在不建議.
最好是用 Dreamweaver 或者文字編輯器可以在多數檔案中搜尋與取代的功能,

把 $HTTP_GET_VARS 換成 $_GET, 
把 $HTTP_POST_VARS 換成 $_POST,
把 $HTTP_SESSION_VARS 換成 $_SESSION ,
把 $HTTP_COOKIE_VARS 換成 $_COOKIE ,
把 $HTTP_SERVER_VARS 換成 $_SERVER.

[PHP] PHP4 程式轉 PHP5 的注意事項 閱讀全文 »

[虛擬主機]如何在0fees.net上設定自己的網域?

在網路開店王一書我們介紹了一個免費的虛擬主機 ,不僅功能完整,使用方便之外
它其實還允許你將自有的網域設定到主機上!對於想要有網站自有品牌的網友來說,實在是個很不錯的福利。
以下我們將介紹設定的方式。

[虛擬主機]如何在0fees.net上設定自己的網域? 閱讀全文 »