關(guān)于處理GET方式提交的含有特殊字符的參數(shù)
當(dāng)前位置:點(diǎn)晴教程→知識(shí)管理交流
→『 技術(shù)文檔交流 』
[p]曾經(jīng)有一位朋友遇到這樣一個(gè)問題,一產(chǎn)品名稱為a&t plastic,在產(chǎn)品列表中就產(chǎn)生了這樣的一個(gè)聯(lián)接a&t plastic,在服務(wù)器端接收此參數(shù)的時(shí)候怎么也無法接收到準(zhǔn)確的產(chǎn)品名。[br]當(dāng)時(shí)就問我,如何解決,也許是當(dāng)時(shí)忙吧,隨口告訴他用htmlencode方法,對(duì)方試告訴并沒有能解決這個(gè)問題。我當(dāng)時(shí)沒有再給予回答,偶爾想起實(shí)在是對(duì)不起,我講錯(cuò)了。今日閑暇就整理了一下如何處理get方式提交的含有特殊字符的參數(shù),以表內(nèi)心的愧疚。 [/p]
[p][br]特殊特殊字符的含義[br]————————————————————————————[br]字符 特殊字符的含義 url編碼[br]# 用來標(biāo)志特定的文檔位置 %23[br]% 對(duì)特殊字符進(jìn)行編碼 %25[br]& 分隔不同的變量值對(duì) %26[br]+ 在變量值中表示空格 %2b[br]表示目錄路徑 %2f[br]= 用來連接鍵和值 %3d[br]? 表示查詢字符串的開始 %3f[/p]
[p]當(dāng)鍵值中含有以上列表中的一些字符時(shí)就無法準(zhǔn)確的接收其中的值。[br][br]<%[br]'定義含有特殊字符的字符串[br]str="parameter=#%&+=?value"[br]'用urlencode方法進(jìn)行編碼[br]strurlencode=server.urlencode(str)[br]'用htmlencode方法進(jìn)行編碼[br]strhtmlencode=server.htmlencode (str)[br]'顯示所有的querysting字符[br]response.write "querystring:"[br]response.write request.querystring [br]'顯示傳遞的參數(shù)[br]response.write "
parameter is:" & str &" "[br]response.write "queryparameter="[br]response.write request.querystring ("str")[/p] [p]%>[br][br][br][br] [br][br][br][/p] [p][br]顯示結(jié)果[br]querystring:[br]parameter is:parameter=#%&+=?value[br]queryparameter= [br]str urlencode method[br]str htmlencode method[br]點(diǎn)擊連接1,結(jié)果[br]querystring:str=parameter%3d%23%25%26%2b%5c%3d%3fvalue%3c%2fhtml%3e[br]parameter is:parameter=#%&+=?value[br]queryparameter=parameter=#%&+=?value [br]str urlencode method[br]str htmlencode method[br]此時(shí)我們發(fā)現(xiàn)好象參數(shù)值中的沒有能正確接收到,當(dāng)我們查看原代碼的時(shí)候就會(huì)發(fā)現(xiàn)其實(shí)已經(jīng)準(zhǔn)確的接收到了,原因是“”是標(biāo)準(zhǔn)html tag ,經(jīng)過瀏覽器解釋后就不會(huì)顯示出來了。[br]點(diǎn)擊連接2,結(jié)果[br]querystring:str=parameter=[br]parameter is:parameter=#%&+=?value[br]queryparameter=parameter= [br]str urlencode method[br]str htmlencode method[br]此時(shí)就會(huì)發(fā)現(xiàn)在#后面沒有能正確接收到,而是被解釋為錨點(diǎn)的開始,在"#"后面的為錨的名稱。[/p] [p]結(jié)論:在含有以上列表中具有特殊功能的特殊字符的字符串,作為參數(shù)用get方式傳遞時(shí),只需要用urlencode方法處理一下就可以拉。如果不想讓瀏覽者看到含后html tag的字符串的具體值值是,我們可以用htmlencode處理一下。[/p] [p]php中用函數(shù)urlencode()就可以拉,這里就不在舉例了。[/p] 該文章在 2010/7/5 0:09:15 編輯過 |
關(guān)鍵字查詢
相關(guān)文章
|