register_globals的值可以設定為:On或Off,我們舉一段程式碼來分別描述它們的不同。 程式碼: 複製程式碼 程式碼如下: type="URL"> put type type="n_username> password" name="user_pass"> 當register_globals=Off的時候,下一個程式接收的時候應該用$_GET['user_name ']和$_GET['user_pass']來接受傳遞過來的值。 (註:當的method屬性為post的時候應該用$_POST['user_name']和$_POST['user_pass']) 當register_globals=On的時候,下一個程式可以直接使用$user_name和$ user_pass來接受值。 顧名思義,register_globals的意思就是註冊為全域變量,所以當On的時候,傳遞過來的值會被直接的註冊為全域變數直接使用,而Off的時候,我們需要到特定的數組裡去得到它。所以,碰到上邊那些無法得到值的問題的朋友應該先檢查一下你的register_globals的設定和你獲取值的方法是否匹配。 (查看可以用phpinfo()函數或直接查看php.ini) 那我們為什麼要使用Off呢?原因有2: 1、php以後的新版本預設都用Off,雖然你可以設定它為On,但是當你無法控制伺服器的時候,你的程式碼的相容性就變成一個大問題,所以,你最好從現在就開始用Off的風格開始編程2、這裡有兩篇文章介紹為什麼要Off而不用On http://www.php.net/manual/en/security.registerglobals.php 現在還有一個問題是,以前用On風格寫的大量腳本怎麼辦? 如果你以前的腳本規劃得好,有個公共包含文件,例如config.inc.php一類的文件,在這個文件裡加上以下的程式碼來模擬一下。 程式碼: 複製程式碼 程式碼如下: if ( !ini_get('register_globals') ) { (exptract); $_SERVER); extract($_FILES); extract($_ENV); extract($_COOKIE); if ( isset($_SESSION) ) { extract($_SESSION); ); register_globals = Off的情況不僅影響到如何獲取從 、url傳遞過來的數據,也影響到session、cookie,對應的,得到session、cookie的方式應該是:$_SESSION[]、$ _COOKIE。同時對於session的處理也有一些改變,例如,session_register()沒有必要且失效,具體的變化,請查看php manual裡的Session handling functions $_REQUEST中間的內容實際上還是來自$_GET $_POST $_COOKIE,缺點是無法判斷變數到底是來自於get post 還是cookie,對要求比較嚴格的場合不適用。 以上就介紹了register_globals PHP中register_globals參數為OFF和ON的區別(register_globals 使用詳解),包括了register_globals方面的內容,希望對PHP教程有興趣的朋友有所幫助。