如果我在GET变量中收到一个url编码的URL,并从PHP文件中读取它,那么它是否已经从脚本的角度进行了解码?
在我的本地机器上,这很好用; URL似乎已经被服务器解码,或者只是HTTP协议。
这样做的:
echo '<a href="' . $_GET['link'] . '">link</a>';
没有urldecode($_GET['link'])
的将输出有效的(&#34;解码的&#34;)链接。
但这个解决方案是否易于迁移和可靠?它取决于PHP版本还是Apache版本?
答案 0 :(得分:3)
GET变量通过urldecode()传递。
它们已经被解码了。你不应该再解码它们。
另一方面,您应该使用htmlspecialchars
对HTML进行编码,因为直接在页面中回显URL输入会使您容易受到XSS攻击。