register_globals使用上的一些補充說明_PHP教程

來源:互聯網
上載者:User
register_globals是php.ini裡的一個配置,這個配置影響到php如何接收傳遞過來的參數,如果你的問題是:為什麼我的表單無法傳遞資料?為什麼我的程式無法得到傳遞過來的變數?等等,那麼你需要仔細的閱讀以下的內容。 

register_globals的值可以設定為:On或者Off,我們舉一段代碼來分別描述它們的不同。 

 

當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呢?

php以後的新版本預設都用Off,雖然你可以設定它為On,但是當你無法控制伺服器的時候,你的代碼的相容性就成為一個大問題,所以,你最好從現在就開始用Off的風格開始編程。

現在還有一個問題就是,以前用On風格寫的大量指令碼怎麼辦?

如果你以前的指令碼規劃得好,有個公用包含檔案,比如config.inc.php一類的檔案,在這個檔案裡加上以下的代碼來類比一下(這個代碼不保證100%可以解決你的問題,因為我沒有大量測試,但是我覺得效果不錯)。另外,這個文章裡的解決方案也可以參考一下:

 

register_globals = Off的情況不僅僅影響到如何擷取從、url傳遞過來的資料,也影響到session、cookie,對應的,得到session、cookie的方式應該為:$_SESSION[]、$_COOKIE。同時對於session的處理也有一些改變,比如,session_register()沒有必要而且失效,具體的變化,請查看php manual裡的Session handling functions

php manual 寫到:

Variables provided to the script via the GET, POST, and COOKIE input mechanisms, and which therefore cannot be trusted. The presence and order of variable inclusion in this array is defined according to the PHP variables_order configuration directive.

$_REQUEST中間的內容實際上還是來源於$_GET $_POST $_COOKIE,缺點是無法判斷變數到底來自於get post 還是cookie,對要求比較嚴格的場合不適用。

http://www.bkjia.com/PHPjc/752365.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/752365.htmlTechArticleregister_globals是php.ini裡的一個配置,這個配置影響到php如何接收傳遞過來的參數,如果你的問題是:為什麼我的表單無法傳遞資料?為什麼...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.