2011-07-19 44 views
2

這可能是一個基本問題,我一直在尋找一種安全和乾淨的方法來執行此操作。我傳遞一個正常的字符串,其中可以包含特殊字符(如$ ^%等)。我該如何做到這一點在網址?例如,我有一個名爲$ text的變量,它位於$ _GET的addto.php中。那麼我怎樣才能將它傳遞給more.php?安全地將變量從一個php文件傳遞到URL中的另一個php文件

+0

你傳遞這回你自己的服務器?您可以考慮使用會話變量,因此您不必將數據傳遞給客戶端。 –

回答

5
'more.php?varname='.urlencode($_GET['text']); 
+0

我怎麼會收到more.php這個...我必須解碼?以及我將如何將它放在addto.php中? – re1man

+0

在這個例子中,你可以通過使用$ _GET ['varname']來獲得它。 – fromvega

+0

感謝編輯@fromvega – Paulpro

1

urlencode聽起來像你想要的。

(來自文檔)

編碼串時在URL的查詢部分被使用,作爲一種方便的方法將變量傳遞到下一個頁面,此功能是方便的。

0

您可以通過URL傳遞數據,它應該是鍵/值對的形式,但不應該用它來傳遞太多的數據,因爲URL有限制。你也不應該傳遞敏感信息。

一個鍵/值對是這樣的:

key=value 

如果您有更多然後一對,則需要使用&字符將它們分開。下面是一個例子:

myScript.php?color1=blue&color2=red 

之後的字符串?被稱爲查詢字符串。使用PHP,您可以使用超全局$ _GET輕鬆訪問這些鍵/值對。所以,在myScript.php你做:

$a = $_GET['color1']; 
$b = $_GET['color2']; 

現在,如果你要創建一個動態的查詢字符串,你應該使用urlencode()至少,因此任何特殊字符將被轉換,以保持適當的URL格式。

請閱讀以下內容:

http://php.net/urlencode

http://php.net/manual/en/function.http-build-query.php

相關問題