测试页面是否位于PHP函数中的iframe中
如何调用函数来测试用户是否在PHP函数中的iframe中?我知道测试这一点的唯一方法是使用Javascript,当我尝试使用echo“…”在PHP中将其作为JS函数传递时,它似乎不起作用 我想把它添加到检查用户是否被授权的函数中,因为我需要根据用户是否在iframe中引导他们进入不同的登录页面。这个函数在一个单独的文件中,因为它几乎在站点的每个页面上都被调用,所以我认为我不能直接用JS来实现 我正在尝试调用的JS函数 PHP函数测试页面是否位于PHP函数中的iframe中,php,function,iframe,Php,Function,Iframe,如何调用函数来测试用户是否在PHP函数中的iframe中?我知道测试这一点的唯一方法是使用Javascript,当我尝试使用echo“…”在PHP中将其作为JS函数传递时,它似乎不起作用 我想把它添加到检查用户是否被授权的函数中,因为我需要根据用户是否在iframe中引导他们进入不同的登录页面。这个函数在一个单独的文件中,因为它几乎在站点的每个页面上都被调用,所以我认为我不能直接用JS来实现 我正在尝试调用的JS函数 PHP函数 function is_user_logged(){ if
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;
}
}
IsInFrame==真是您的问题。==这是一个严格的比较,真的!==true,因为一个是布尔值,而另一个是字符串
我只想扔掉它,或者使用IsInFrame:
另外,看看这个问题,可以找到一种更可靠的帧检测方法:我不知道你在问什么。您无法通过PHP判断自己是否在一个框架中,因为PHP与框架无关。框架是客户端的东西,因此只有客户端技术才能解决这个问题。@deceze是否有其他方法可以将用户重定向到相应的页面?我首先想问iframe与授权有什么关系。@deceze-如果他们没有登录,就需要重定向到登录页面,有不同的页面,这取决于它们是否处于良好的捕获状态@Chaya你需要停止使用布尔作为字符串。这是真的,不是真的。感谢@deceze解释:-@Blender-现在就开始测试:-我没有任何运气使用你发布的带有“…”的函数;还有什么我应该做的吗?@ChayaCooper:这是你的问题。摆脱它。这很可能不是它的正确用例。
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;
}
}
function test_iframe() {
if (window.location != window.parent.location) {
window.location.href = "sign_in_iframe.html";
} else {
window.location.href = "sign_in.html";
}
}