我正在通過querystring檢索編碼的URL。我需要再次將它傳遞給下一頁。當我找回它的第一次,使用$_REQUEST['url']
,只有斜槓解碼,e.g:
http://example.com/search~S10?/Xllamas&searchscope=10&SORT=D/Xllamas&searchscope=10&SORT=D&SUBKEY=llamas/51%2C64%2C64%2CB/browse
的php docs page for urldecode建議不要解碼請求數據,並說會已經被解碼。我需要它完全解碼,所以我可以再編碼一次,而不需要對某些部分進行雙重編碼,或者根本不解碼。
我不確定爲什麼我對這些數據的體驗與php文檔不一致。欣賞任何幫助或指針相同!
編輯:嘗試發佈相關的代碼,這是散落:
的URL進行編碼和(使用Smarty的模板,在HTML文件)添加到查詢字符串:
<a class="button" href="{$baseurl}search_nojs?searcharg={$searcharg|escape:'url'}&url={$next|escape:'url'}"><span>Next>></span></a>
如果該鏈接其次,我抓住了URL回到了查詢字符串(在php文件):
if(array_key_exists('url', $_REQUEST)) { $sm->assign("searchurl", $_REQUEST['url']); }
然後,我想堅持的URL回查詢字符串爲下一個鏈接(在另一個HTML文件):
href="{$baseurl}detail?bibid={$res.bibid}&searcharg={$searcharg}{if $searchurl}&searchurl={$searchurl}{/if}"
我還打印{$searchurl}
直接到頁面上,並獲得相同的半逃脫的結果。
這裏是查詢字符串對數據的另一個例子,我從$_REQUEST
得到:在查詢字符串
原始編碼的網址:從$_REQUEST
檢索
searcharg=mammals&url=http%3A%2F%2Fexample.com%2Fsearch%7ES10%3F%2FXmammals%26searchscope%3D10%26SORT%3DD%2FXmammals%26searchscope%3D10%26SORT%3DD%26SUBKEY%3Dmammals%2F51%252C1114%252C1114%252CB%2Fbrowse
數據:
searcharg=mammals&searchurl=http://example.com/search~S10?/Xmammals&searchscope=10&SORT=D/Xmammals&searchscope=10&SORT=D&SUBKEY=mammals/51%2C1114%2C1114%2CB/browse
我知道這種方法可能看起來好奇 - 我試圖製作一個移動顯示器,圍繞黑盒數據庫工作。再次感謝任何幫助!!
你確定嗎?什麼是例如Firebug說你請求的URL是? – 2010-05-14 18:41:25
你能發表一些代碼嗎? – 2010-05-14 18:42:17
我已經添加了一些信息;希望它會給上下文。謝謝你們! – 2010-05-14 19:13:51