PHP的url傳值學習劄記

來源:互聯網
上載者:User
PHP的url傳值學習筆記
1. 頁面中的源碼在顯示在瀏覽器的時候, 瀏覽器會解釋 HTML 轉義符號    因此如果要顯示特殊字元,如 ‘<’,’>’等,在源碼中可以是<>2. PHP在echo進行顯示的時候,如果要顯示‘<’,’>’可以這樣處理echo htmlspecialchars(‘<>’);htmlspecialchars 可以處理以下字元'&' ,'"', ''' , '<' , '>'  #      '&' (ampersand) becomes '&'#      '"' (double quote) becomes '"' when ENT_NOQUOTES is not set.#      ''' (single quote) becomes ''' only when ENT_QUOTES is set.#      '<' (less than) becomes '<'#      '>' (greater than) becomes '>'3. 當要手動構造url的時候的方法 echo "\n";但是要把構造的url用於js的跳轉,則不能用htmlspecialchars(詳情見5.)4. IE,FireFox會對href=”url” 的url進行Un_htmlspecialchars(滑鼠移上去後可以在瀏覽器狀態列看到)也就是因為html會自動認識象"&"這樣的實體然後提交的時候還會 進行urlencode()變數然後提交PHP中的含義是:除了-_. 之外的所有非字母數字字元都將被替換成百分比符號(%)後跟兩位十六進位數,空格則編碼為加號(+)。#號比較特殊,如果要傳輸#號,可以在url欄輸入%23 或者使用3.的方法?5. 但是在JS中window.location=”url”的url中如果存在"&"這樣的字元就不會正常進行跳轉了,原因是JS"&"只是把他們看作正常字元而已  但是都會進行urlencode()然後提交(滑鼠移上去後可以在瀏覽器狀態列看到)    所以使用PHP變數在JS中嵌入url地址時要特別注意6. 當提交時,不論是 GET 或者 POST 方法,資料都會被瀏覽器進行 urlencode 來傳輸(第5點),並直接被 PHP urldecode。所以最終不需要自己處理任何 urlencoding/urldecoding,全都是自動處理的。7.如果要在瀏覽器中發送表單或資料給伺服器端,使用GET或POST方法都能實現。GET方法是在訪問URL時,使用瀏覽器地址欄來傳遞值。我們可以在很多網站上看到這類URL串。GET方法方便直觀,缺點是訪問該網站的使用者也可以修改URL串後發送給伺服器,如果程式處理得不夠好很容易出錯,而且GET傳遞的字串長度不能超過250個字元,如果超長,瀏覽器會自動截斷,導致資料缺失。另外,GET方法不支援ASCII字元之外的任何字元,比如包含有漢字或其他非 ASCII字元時,需要使用額外的編碼操作,雖然有時候瀏覽器也能自動完成(可以使用url_encode和url_decode函數)。POST方法發送變數資料時,對於使用者來說是不透明的,按HTTP協議來說,資料附加於header的頭資訊中,使用者不能隨意修改,這對於Web應用程式而言,安全性要好得多,而且使用POST可以發送大體積的資料給Web伺服器。因為POST是隨HTTP的header資訊一起發送的,當觸發POST表單提交後,如果使用者瀏覽頁面時單擊[上一頁] 按鈕,瀏覽器不會自動重發 POST資料。如果使用者此時單擊[重新整理] 按鈕,將會有“資料已經到期,是否重新提交表單”的提示,這一點不如GET使用方便。使用GET傳值時,即便使用者使用“後退”或[重新整理] 按鈕,瀏覽器的URL地址也是仍然存在的。因此,我們在開發中需要根據實際應用靈活選擇GET和POST來提交表單資料。值得一提的是,如果在HTML中缺少表單結束標記,那麼整個表單是不會觸發任何提交動作的。在實際開發時,一些粗心的人會發現單擊按鈕沒有任何反映,其實細心檢查一下表單的代碼就可以了,有時即使少寫了一個HTML字元,瀏覽器也不會替我們幹活的。8.index.php?a=urlencode('+');urldecode( $_GET['a'] ) = ' ';   urlencode 將空格則編碼為加號(+)。   rawurlencode將空格替換成百分比符號(%)後跟兩位十六進位數   可以使用rawurlencode()與rawurldecode()來避免這個錯誤 9.urlencode()返回字串,此字串中除了 -_. 之外的所有非字母數字字元都將被替換成百分比符號(%)後跟兩位十六進位數,空格則編碼為加號(+)。此編碼與 WWW 表單 POST 資料的編碼方式是一樣的,同時與 application/x-www-form-urlencoded 的媒體類型編碼方式一樣。
  • 相關文章

    聯繫我們

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