-1

如何调用函数来测试用户是否在 PHP 函数中的 iframe 中?我知道测试它的唯一方法是在 Javascript 中,当我尝试使用 PHP 将它作为 JS 函数传递时,它似乎不起作用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;
    }           
}
4

1 回答 1

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";
    }
}

另外,请查看这个问题以获得更可靠的框架检测方法:如何识别网页是在 iframe 中加载还是直接加载到浏览器窗口中?

于 2013-04-18T04:51:31.907 回答