传递URL中的数据与使用GET通过表单提交

时间:2013-11-24 17:49:08

标签: php html forms url-encoding

我写了一个小的php(test.php),它读取并显示传递给它的数据。

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

执行以下网址时 http://localhost/test.php?name=Géo

显示的文字是:G o

但是,当我从其他网页提交“Géo”时:

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

网址更改为http://localhost/test.php?name=G%C3%A9o

现在显示正确的文字:Géo

在第一种情况下,只有当我添加utf8_encode($ _GET ['name'])时,才会显示正确的文本(Géo)。

我的问题: 是否可以知道数据的传递方式,通过表单提交或直接从URL提交。如果没有,那么我应该对网页做出哪些更改,以便正确处理这两个场景,即在两种情况下都显示Géo。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

您可以添加注册。表达式,它将检查参数是否包含%。因为编码参数可能包含%

但是,如果您执行的url由于某种原因包含%,问题就会重新出现......