我正在尝试传递包含特殊html字符的查询字符串(例如<
)。我必须做
window.location.href = ".."
在另一页上,我必须使用PHP检索此查询字符串。但是当我使用isset()
检查它时,它返回false!
例如,当我需要像这样使用JS来逃避<p>
:
function HtmlEncode(s)
{
var el = document.createElement("div");
el.innerText = el.textContent = s;
s = el.innerHTML;
return s;
}
window.location.href = "http://localhost/test.php?t="+HTMLEncode("<p>");
现在网址为:http://localhost/test.php?t=<p>
。
当我echo isset($_GET["t"]);
时,我得到false
。
或者即使我尝试this is a <p> tag
,我也会$_GET["t"]
等于this is a
。
谁能告诉我发生了什么?
答案 0 :(得分:0)
请勿使用HTMLEncode()
使用encodeURIComponent()
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/encodeURIComponent