在PHP中登录后如何转到同一页面

在PHP中登录后如何转到同一页面,php,redirect,login,Php,Redirect,Login,比如说, 第1步: 我正在浏览未登录的页面,登录前的最后一页是beforeLogin.php 第二步: 现在我的问题是,当我登录时,我正在重定向到index.php页面。相反,我应该被重定向到我浏览过的最后一页 从上面的例子可以看出,应该重定向到beforeLogin.php 应该如何做到这一点 任何帮助都是值得的 提前感谢您需要一种方法来跟踪所访问的网页,这样您就可以返回到用户浏览到的最后一页 当我想到跨多个页面跟踪用户会话时,我和其他PHP程序员一样,想到了使用 一种可能的方法是将访问的链接

比如说,

第1步:

我正在浏览未登录的页面,登录前的最后一页是beforeLogin.php

第二步:

现在我的问题是,当我登录时,我正在重定向到index.php页面。相反,我应该被重定向到我浏览过的最后一页

从上面的例子可以看出,应该重定向到beforeLogin.php

应该如何做到这一点

任何帮助都是值得的


提前感谢

您需要一种方法来跟踪所访问的网页,这样您就可以返回到用户浏览到的最后一页

当我想到跨多个页面跟踪用户会话时,我和其他PHP程序员一样,想到了使用

一种可能的方法是将访问的链接存储到会话变量中,然后当用户到达
login.php
页面(要登录的页面)时,提供对会话变量给定的
$url
的重定向

注意:下面的代码片段尚未经过测试或编译。 您可以将此代码粘贴到网站上的所有页面:

<?php
session_start(); // starts the session
$_SESSION['url'] = $_SERVER['REQUEST_URI']; // i.e. "about.php"

您可以将登录表单操作引导到当前页面。 这很简单

喂,你的页面看起来像

<?
include "auth.php"; // you need it anyway, as you want to control user's auth
//the rest of the page;
?>
<form method="POST">
login form
</form>
<?
//the rest of the page;
if (!empty($_SESSION['user_id'])) echo "Welcome registered user!";
?>

到目前为止,最简单的解决方案就是:

<input type="hidden" name="redirurl" value="<? echo $_SERVER['HTTP_REFERER']; ?>" />

您应该接受已回答的解决方案,以激励他人回答!这个答案让我安全了很多时间!!非常感谢你!!标题(“位置:);取两个正斜杠,但当我使用标题(“位置:);向前斜杠一次
<?
if (isset($_REQUEST[session_name()])) session_start();
if (isset($_POST['auth_name'])) {
  //password checking
  if (pass ok) {
    session_start();
    $_SESSION['user_id'] = $row['id'];
  }
  header("Location: http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']);
  exit;
}
<input type="hidden" name="redirurl" value="<? echo $_SERVER['HTTP_REFERER']; ?>" />
<?php
session_start(); // starts the session
$_SESSION['url'] = $_SERVER['REQUEST_URI']; // i.e. "about.php"
<?php
session_start();  // needed for sessions.
if(isset($_SESSION['url'])) 
   $url = $_SESSION['url']; // holds url for last page visited.
else 
   $url = "index.php"; // default page for 

header("Location: http://example.com$url"); // perform correct redirect.