如何调用函数来测试用户是否在PHP函数中的iframe中?我知道测试这个的唯一方法是在Javascript中,当我尝试使用echo '<script type="text/javascript"> ... </script>';
我想将此添加到检查用户是否获得授权的函数中,因为我需要将它们指向不同的登录页面,具体取决于它们是否在iframe中。这个函数在一个单独的文件中(因为它几乎在网站的每个页面都被调用)所以我不认为我可以用直接的JS来做。
JS函数我试图调用
var isInIFrame = (window.location != window.parent.location)
function test_iframe() {
if (isInIFrame === "true") {
window.location.href = "sign_in_iframe.html";
}
else {
window.location.href = "sign_in.html";
}
PHP函数
function is_user_logged(){
if ( session_id() == ''){
session_start();
}
if(!isset($_SESSION['SESS_USER_ID']) ) {
$logged = "false";
header("location: sign_in.html");
exit();
} else {
$logged = "true";
return $logged;
}
}
答案 0 :(得分:2)
isInIFrame === "true"
是你的问题。 ===
是一个严格的比较,所以true !== "true"
,一个是布尔值而另一个是字符串。
我只是摆脱它或使用if (isInIFrame)
:
function test_iframe() {
if (window.location != window.parent.location) {
window.location.href = "sign_in_iframe.html";
} else {
window.location.href = "sign_in.html";
}
}
另外,请看一下这个问题,以获得更可靠的帧检测方法:How to identify if a webpage is being loaded inside an iframe or directly into the browser window?