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



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

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

当我执行以下URL时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>

URL变为http://localhost/test.php?name=G%C3%A9o

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

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

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

谢谢你的帮助。

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

但是,如果您执行的url由于某种原因包含%,则问题将再次出现。。。

最新更新