在我的索引页面上,我有一个指向我的login.php页面的链接,其中包含以下代码:
<?php
if(isset($_SESSION['username'])) {
echo "<div id='logout'><a href='logout.php'>Logout (".$_SESSION['username'].")</a></div>";
} else {
echo "<div id='login'><a href='login.php'>Login (Regular)</a></div>";
}
?>
在login.php页面上我有
<?php
include('check.php');
$ref = getenv('HTTP_REFERER');
if (isset($ref)) {
header("Location: " . $ref);
exit;
} else {
header("Location: index.php");
exit;
}
?>
check.php是登录表单的代码,它会检查用户级别以确保他们可以访问该页面。有人告诉我,我需要添加一个检查,看看引用是否是login.php,否则它将进入无限循环,我当然得到“这个网页有一个重定向循环”。但是,我不知道如何做到这一点,我找不到任何有关如何解决它的信息。有人知道快速解决方案吗?
答案 0 :(得分:0)
你应该能够做到
if (isset($_SERVER['HTTP_REFERER']) && end(explode('/',$_SERVER['HTTP_REFERER'])) != 'login.php') {
header("Location: " . $_SERVER['HTTP_REFERER']);
exit;
} else {
header("Location: index.php");
exit;
}
请注意,这是一个简化的代码 - 您可能需要比这更聪明。