2007年10月11日 星期四

php3 -> PHP5 (變數修改)

$HTTP_POST_VARS 改成 $_POST
$HTTP_GET_VARS 改成 $_GET
$HTTP_SERVER_VARS 改成 $_SERVER
$HTTP_SESSION_VARS 改成 $_SESSION

$_SERVER
變數由 Web 伺服器設定,或者直接與當前程式的執行環境相關聯者。舊陣列 $HTTP_SERVER_VARS,依然有效,但不建議使用。

比如:過去使用 $PHP_SELF,現在請改用 $_SERVER[PHP_SELF]


$_GET

經由 HTTP GET 方法送至程式的變數。
舊陣列 $HTTP_GET_VARS,依然有效,但不建議使用。
比如:過去經由位址列傳送變數 act 的值,用 $act 即可取得,但現在要用 $_GET["act"]、$_GET['act'] 或 $_GET[act] 來取得 act 的值。

$_POST
表單經由 HTTP POST 方法送至程式的變數。
比如:過去經由表單傳送變數 value 的值,用 $value 即可取得,
但現在要改用 $_POST["value"]、 $_POST['value'] 或 $_POST[value]
來取得 vaule 的值。

$_COOKIE
經由 HTTP Cookies 方法送至程式的變數。
舊陣列 $HTTP_COOKIE_VARS,依然有效,但不建議使用。

$_FILES
經由 HTTP POST 上傳檔案時送至程式的變數。
舊陣列 $HTTP_POST_FILES,依然有效,但不建議使用。
假設表單中上傳檔案的變數名稱為 file,則:
上傳暫存檔:$_FILES['file']['tmp_name']
檔案名稱為:$_FILES['file']['name']
檔案大小為:$_FILES['file']['size']
檔案型態為:$_FILES['file']['type']


$_ENV
執行環境送出至程式的變數。
舊陣列 $HTTP_ENV_VARS,依然有效,但不建議使用。

$_SESSION
SESSION 變數。
舊陣列 $HTTP_SESSION_VARS,依然有效,但不建議使用。
比如:過去 SESSION 變數寫法為 $session_id 即可,
現在要改為 $_SESSION[session_id]

$GLOBALS
包含一個引用指向每個目前程式的全域範圍內有效的變數。
該陣列的鍵值為全域變數的 名稱。(PHP 3 即開始支援 $GLOBALS 陣列)


$_REQUEST
經由任何輸入機制送至程式的變數。所有包含在該陣列中的變數存在與否以及變數的順序,均按照 php.ini 中的 variables_order 配置來決定。

而且這樣子您對於變數的來源也會很清楚不會混亂啦^^
嗯,如果你有用DreamweaverMX來寫php的程式的話,您應該也有注意到它所產生的語法也是用$HTTP_POST_VAR['var]...類似的寫法呢。

所以看完了上面,考考您,上面的test.php一例,應該要如何修改語法呢?
嗯,相信您一定知道了
修正成這樣

echo $_POST['name'];
?>



至於其它的用法也是一樣的,就先醬子啦

沒有留言: