登录成功后如何回到上一页


How to go back to previous page after successful login

我正在使用登录系统。这里是我的代码重定向一些其他页面成功登录后。我只是想回到上一页,而不是重定向到某个特定的页面。

代码: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);
    }
 }