在我的登录系统上,我让它通过AJAX请求在fancyBox灯箱中弹出。但有一个问题。如果用户在浏览器中访问login.php
本身,他们会看到一个没有样式的页面,这个页面不起作用,因为帮助它的JavaScript在有登录弹出的页面上。如果他们在login.php
上,我想把他们重定向到主页。
I tried doing this:
<?php
if($_SERVER['REQUEST_URI'] == '/login.php') {
header("Location: /");
}
?>
以及:
<?php
if($_SERVER['PHP_SELF'] == '/login.php') {
header("Location: /");
}
?>
这两个都不起作用,因为当您打开fancyBox时,它会把页面弄乱并使其为空白。
是否有一种方法,使它重定向,如果用户是在登录页面本身,不影响fancyBox?
把这个放到你的login.php脚本中,以检测非ajax请求并在这种情况下重定向:
//Redirect the user if page not requested via ajax
if(!$_SERVER['HTTP_X_REQUESTED_WITH'] === 'XMLHttpRequest') { header('Location: /'); }
我建议在ajax调用中传递post或get变量,以指示脚本请求来自ajax。比如:
if(isset($_REQUEST["yay_ajax"])){
// Output your login stuff
}
else{
header("Location: index.php");
}