我有一个Javascript代码,可以像这样生成iframe
var ifrm = document.createElement("iframe");
ifrm.setAttribute("src", "https://IFRAMEURL");
ifrm.style.width = "0px";
ifrm.style.height = "0px";
document.body.appendChild(ifrm);
在这个iframe网址中,我有这样的PHP代码
$url = $_SERVER['HTTP_REFERER'];
但是,此iframe无法获得我认为的http_referer,因为它是动态生成的。
该代码在不使用动态生成的iframe时可以正常工作。
是否有获取HTTP_REFERER的修复程序或解决方法?
编辑:我也不控制父URL。父URL添加了JS代码,因此我无法传递任何其他变量。
答案 0 :(得分:0)
摘自PHP官方文档:
将用户代理引至网页的页面地址(如果有) 当前页面。这是由用户代理设置的。并非所有用户代理都会 进行设置,并且某些功能可以将HTTP_REFERER修改为 特征。简而言之,它不能真正被信任。
http://php.net/manual/en/reserved.variables.server.php
为了防止您可以发出通知
$url = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : "";
但是,如果您要寻找更强大的解决方案,则它可以更好地自己处理。如果您控制上一页,则可以将URL作为参数site.com/page2.php?prevUrl=".urlencode("site.com/page1.php
传递。