登录后,重定向到用户上次会话的最后访问页面


after login, redirect to last visited page of the user's last session?

我有一个登录表单。我希望,当用户登录在其帐户,然后他得到重定向到他登出前访问的最后一个页面

请帮助我的代码和想法,因为我是一个初学者。

加载页面时,写入

$_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"]

放到某个用户表中。然后在页面加载时,检查所述表是否有值,并简单地使用

header("Locations:".$userTable['loadedField'])

如果您编写自己的会话处理程序,则可以使用Sessions完成此操作。数据库会话提供了很大的灵活性,您可以保留实际会话,因为您已经编写了垃圾收集处理程序。这并不难,但有点超出了提问的范围。答:我认为这是cookie的一个完美案例,可以与你现有的会话并行实现。当用户返回到您的站点时,您可以检查最后一个页面的url,您的注销例程为其设置了一个cookie值。如果结果页面需要他们登录,那就更好了。

更多信息:会话饼干

很简单的例子:

<?php
if(isset($_COOKIE["Visited"]))
{
    echo "<h1>Welcome back</h1>";
}
else
{
    echo "<h1>Welcome to the Index</h1>";
    setcookie("Visited", true);
}

您必须将上次会话页面存储在文件或数据库中。

当用户注销(我希望)或离开页面时,会话将被终止。

据我所知,你可以在用户注销时创建一个"存储最后一页功能"。
然而,当用户刚刚关闭页面时,这将不适用。我的猜测是,您必须在用户每次浏览到另一个页面时存储该页面。

希望我帮到你了。
Mixxiphoid

在登录链接中添加return_to参数,设置为当前页面。在登录页面上捕获该参数,并将其作为隐藏值粘贴到登录表单中。在处理登录表单时,如果一切顺利,触发header('Location: ' . $_POST['redirect_to']);

这可能是最简单和最直接的方法,但是请记住,您必须验证所有传入的数据,包括redirect_to参数,否则可能会出现安全问题。

~ K

您需要存储登录用户在数据库中访问的页面的实际url(对于每个单独的页面加载,登出页面除外)当用户再次登录时,您必须从数据库中获取他访问的最后一个url并重定向他:)