提问者:小点点

$_GET函数在url中未看到“+”或“%20”符号


在一个php文件中,我使用了以下代码:

header('Location: localhost/?room=ler&user='.urlencode('Indianu Talpa Iute'));

这会将我发送到一个url为localhost/?room=ler&user=indianu+talpa+iute的页面,我想在同一个页面的表单中插入这些值,如下所示:

<input type="text" name="user" value=<?php echo ''.$_GET['user'].'' ?> >

但它只在文本字段中显示Indianu。 为什么? 我该怎么解决这个问题?

它对“+”和“%20”(而不是空格)的工作方式相同。


共1个答案

匿名用户

value属性的值周围加上引号:

<input type="text" name="user" value="<?php echo ''.$_GET['user'].'' ?>" >

并且记住至少要使用HTMLSpecialChars()来避免XSS:

<input type="text" name="user" value="<?php echo htmlspecialchars($_GET['user']) ?>" >

ps.$_get不是函数; 这是一个超全局阵列。