我正在使用登录系统。这里是我的代码重定向一些其他页面成功登录后。我只是想回到上一页,而不是重定向到某个特定的页面。
代码:login.php
<?PHP
require_once("./include/membersite_config.php");
if(isset($_POST['submitted']))
{
if($fgmembersite->Login())
{
$fgmembersite->RedirectToURL("login-home.php");
}
}
?>
在上一页
添加这些:
session_start();
require_once("./include/membersite_config.php");
if (!$fgmembersite->CheckLogin())
{
$_SESSION['redirect_url'] = $_SERVER['PHP_SELF'];
header('Location: login.php');
exit;
}
登录页面
session_start();
require_once("./include/membersite_config.php");
if(isset($_POST['submitted']))
{
if($fgmembersite->Login())
{
$redirect_url = (isset($_SESSION['redirect_url'])) ? $_SESSION['redirect_url'] : '/';
unset($_SESSION['redirect_url']);
header("Location: $redirect_url", true, 303);
exit;
}
}
在PHP中,您可以使用$_SERVER
变量获得上一页。这个$_SERVER['HTTP_REFERER']
包含了当前页面的URL,
但有时浏览器中有一些用户可以使用的选项禁用发送此信息。
所以要小心使用这个选项。
另一种选择是在表单中设置一个值,并将其与其他数据一起发送,这仍然是脆弱的,因为这可以很容易地被用户更改。
你可以试试这个方法:在您的登录页面:$comingFrom = $_SERVER['HTTP_REFERER'];
if(isset($_POST['submitted']))
{
//or you can store it in session also.so that you can redirect it from anywhere.
if($fgmembersite->Login())
{
$fgmembersite->RedirectToURL($comingFrom);
}
}