国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

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

2019-11-18 20:08:18
字體:
來源:轉載
供稿:網友
曾經有一位朋友遇到這樣一個問題,一產品名稱為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()就可以拉,這里就不在舉例了。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 铁岭县| 兴义市| 鲁甸县| 洞头县| 修水县| 汪清县| 六枝特区| 汉川市| 河西区| 苏尼特左旗| 永年县| 定襄县| 华亭县| 麻阳| 丰顺县| 密云县| 民勤县| 永修县| 万山特区| 图木舒克市| 南华县| 江阴市| 景宁| 武清区| 保定市| 于田县| 邳州市| 利津县| 永胜县| 商洛市| 墨江| 西乌珠穆沁旗| 辽中县| 东城区| 甘孜| 宣汉县| 五莲县| 惠安县| 永寿县| 广丰县| 内江市|