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

2022-08-30 20:44:40

例如

第 1 步:

我在未登录的情况下浏览页面,登录前的最后一页在登录之前.php

第 2 步:

现在我的概率是当我登录时,我正在重定向到索引.php页面。相反,我应该被重定向到我浏览的最后一页。

那就是从上面的例子应该被重定向到之前登录.php

应该如何做到这一点。

任何帮助都是可观的。

提前致谢


答案 1

您需要一种方法来跟踪访问过的网页,以便可以反向引用用户浏览到的最后一个页面。

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

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

注意:以下代码片段尚未经过测试编译

您可以将此代码粘贴到您网站上的所有页面中:

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

这利用 $_SERVER 变量返回访问过的当前页面的 URI$_SERVER['REQUEST_URI']

然后对于登录页面帮助进一步演示:

<?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.

答案 2

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

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

然后在他们登录后重定向到该地址。

但是,这只有在每个页面上都有一个登录框时才好。我个人这样做,我发现它工作得很好。


推荐