• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    關于處理GET方式提交的含有特殊字符的參數

    發布: 2007-7-14 19:37 | 作者: 佚名    | 來源: 網絡轉載     | 查看: 42次 | 進入軟件測試論壇討論

    領測軟件測試網 曾經有一位朋友遇到這樣一個問題,一產品名稱為A&T Plastic,在產品列表中就產生了這樣的一個聯接<a href="product.asp?name=A&T Plastic">A&T Plastic</a>,在服務器端接收此參數的時候怎么也無法接收到準確的產品名。
    當時就問我,如何解決,也許是當時忙吧,隨口告訴他用HTMLENCODE方法,對方試告訴并沒有能解決這個問題。我當時沒有再給予回答,偶爾想起實在是對不起,我講錯了。今日閑暇就整理了一下如何處理GET方式提交的含有特殊字符的參數,以表內心的愧疚。

    特殊特殊字符的含義
    ————————————————————————————
    字符 特殊字符的含義 URL編碼
    # 用來標志特定的文檔位置 %23
    % 對特殊字符進行編碼 %25
    & 分隔不同的變量值對 %26
    + 在變量值中表示空格 %2B
    \ 表示目錄路徑 %2F
    = 用來連接鍵和值 %3D
    ? 表示查詢字符串的開始 %3F

    當鍵值中含有以上列表中的一些字符時就無法準確的接收其中的值。
    <!--文件名為01.asp-->
    <%
    '定義含有特殊字符的字符串
    str="parameter=#%&+\=?value</html>"
    '用URLEncode方法進行編碼
    strurlencode=server.URLEncode(str)
    '用HTMLEncode方法進行編碼
    strhtmlencode=server.HTMLEncode (str)
    '顯示所有的querysting字符
    Response.Write "<b>QueryString:<b>"
    Response.Write Request.QueryString
    '顯示傳遞的參數
    Response.Write "<br><b>Parameter is:</b>" & str &"<br>"
    Response.Write "<b>QueryParameter=</b>"
    Response.Write Request.QueryString ("str")

    %>
    <HTML>
    <HEAD>
    <META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
    <TITLE></TITLE>
    </HEAD>
    <BODY>

    <P><a href="01.asp?str=<%=strurlencode%>">Str UrlEncode Method</a></P>
    <P> </P>
    <P><a href="01.asp?str=<%=strhtmlencode%>">Str HtmlEncode Method</a></P>
    </BODY>
    </HTML>


    顯示結果
    QueryString:
    Parameter is:parameter=#%&+\=?value
    QueryParameter=
    Str UrlEncode Method
    Str HtmlEncode Method
    點擊連接1,結果
    QueryString:str=parameter%3D%23%25%26%2B%5C%3D%3Fvalue%3C%2Fhtml%3E
    Parameter is:parameter=#%&+\=?value
    QueryParameter=parameter=#%&+\=?value
    Str UrlEncode Method
    Str HtmlEncode Method
    此時我們發現好象參數值中的</html>沒有能正確接收到,當我們查看原代碼的時候就會發現其實已經準確的接收到了,原因是“</html>”是標準html tag ,經過瀏覽器解釋后就不會顯示出來了。
    點擊連接2,結果
    QueryString:str=parameter=
    Parameter is:parameter=#%&+\=?value
    QueryParameter=parameter=
    Str UrlEncode Method
    Str HtmlEncode Method
    此時就會發現在#后面沒有能正確接收到,而是被解釋為錨點的開始,在"#"后面的為錨的名稱。

    結論:在含有以上列表中具有特殊功能的特殊字符的字符串,作為參數用GET方式傳遞時,只需要用URLENCODE方法處理一下就可以拉。如果不想讓瀏覽者看到含后HTML TAG的字符串的具體值值是,我們可以用HTMLENCODE處理一下。

    PHP中用函數urlencode()就可以拉,這里就不在舉例了。


    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備2023014753號-2
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>