php基礎知識(一)-魔術引用

來源:互聯網
上載者:User
php基礎知識(1)-魔術引用
php基礎知識-魔術引用

範例程式碼下載頁http://xieye.iteye.com/blog/1336095(在附件)

魔術引用是指:伺服器對一些字元做自動轉換,以方便程式員的做法。

來源:最開始,php的設計者為了方便程式員將表單資料添加到資料庫,在設定檔中加了一個設定,當選項開啟時,魔術引用啟用,當選項關閉時,魔術引用不啟用。

php.ini大約441行
magic_quotes_gpc = Off
注釋是; Magic quotes for incoming GET/POST/Cookie data.
注釋表明為on時會對進入伺服器的get/post/cookie資料做自動轉換。

1)addslashes函數
介紹魔術引用之前,先介紹addslashes函數

該函數返回字串,該字串為了資料庫查詢語句等的需要在某些字元前加上了反斜線。這些字元是單引號(')、雙引號(")、反斜線(\)與 NUL(NULL 字元)。

一個使用 addslashes() 的例子是當你要往資料庫中輸入資料時。例如,將名字 O'reilly 插入到資料庫中,這就需要對其進行轉義。大多資料庫使用 \ 作為轉義符:O\'reilly。這樣可以將資料放入資料庫中,而不會插入額外的 \。當 PHP 指令 magic_quotes_sybase 被設定成 on 時,意味著插入 ' 時將使用 ' 進行轉義。

預設情況下,PHP 指令 magic_quotes_gpc 為 on,它主要是對所有的 GET、POST 和 COOKIE 資料自動運行 addslashes()。不要對已經被 magic_quotes_gpc 轉義過的字串使用 addslashes(),因為這樣會導致雙層轉義。遇到這種情況時可以使用函數 get_magic_quotes_gpc() 進行檢測。

例子 1. addslashes() 樣本
http://localhost/command/peixun/magicquote/1.php


2)測試組態選項magic_quotes_gpc
首先確保magic_quotes_gpc = On,如果是off或0,則需要修改,並重啟apache伺服器。
http://localhost/command/peixun/magicquote/2.php
          longs;    echo $html;    } else {    echo $_POST['name1'];    }

然後修改magic_quotes_gpc = Off,並重啟apache伺服器,再次測試程式。

最後要說明的是,這些都是學習概念用的,實際的大部分應用中,都將魔術引用關閉,手動的進行轉換。




  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.