2013-11-24 23 views
0

我寫了一個小型的php(test.php),它讀取並顯示傳遞給它的數據。傳遞URL中的數據與通過表單提交使用GET

<?php $name = $_GET['name']; echo $name;?>

當我執行下面的網址 http://localhost/test.php?name=Géo

是被顯示的文本是:進入

然而,當我提出 「全球環境展望」 從其他網頁:

<form method="get" action="test.php"> <input type="test" name="name"> <input type="Submit"> </form>

URL更改爲​​

,現在會顯示正確的文本:GEO

在第一種情況下,只有當我添加函數utf8_encode($ _ GET [「名」]),正確的文本(GEO)被顯示出來。

我的問題: 是否可以知道數據是如何傳遞的,通過表單或直接從URL提交。如果不是,那麼我應該對網頁做出什麼樣的改變,以便兩種情況都能正確處理,即在兩種情況下都顯示Géo。

感謝您的幫助。

+0

在**秒**的情況下,加'函數utf8_encode($ _ GET [「名」 ])'改變輸入? – MeNa

+0

將utf8_encode添加到第二個方案將輸入更改爲:GÃo o – user3027793

+0

什麼是您的「Content-Type」標題?它包含類似'charset = UTF-8'? – MeNa

回答

0

您可以添加一個註冊。表達式將檢查參數是否包含%。因爲編碼參數可能包含%

但是,如果你執行,由於某種原因包含%,問題會捲土重來網址...

+0

我想知道其他人怎麼解決這個問題? – user3027793

+0

可能不關心執行沒有HTML格式。 – MeNa

+0

查看Google,在搜索框中輸入Géo或%,然後將URL更改爲https://www.google.com?q=%或https://www.google.com?q=Géo在兩種情況下正確的數據是吐出來的。 – user3027793

相關問題