登录后返回评论页面

时间:2011-11-21 10:19:06

标签: php

很抱歉,如果我没有向您展示代码,因为我不知道如何实现它。我只是想知道,例如在YouTube中,当您想要对视频发表评论时,您必须登录,以便如何将您重定向到您想要发表评论的上一个视频页面。我想我需要将上一页的url存储到会话中,但是如果用户没有登录,我是否仍然可以跟踪该url,抱歉我的困惑。我想在php中完成它,任何人都可以帮助我,提前感谢:)

5 个答案:

答案 0 :(得分:0)

header('Location: '. $_SERVER["HTTP_REFERER"]);

这是最简单的方法。它会自动将用户重定向到他来自的页面,以防他激活引用(默认)。

答案 1 :(得分:0)

您可以将链接存储在链接到登录页面的URL中。然后,您可以读取$ _GET值并相应地处理它。

答案 2 :(得分:0)

我建议将返回URL作为GET参数传递:

$login_url = 'http://example.com/login.php?return=' . rawurlencode($_SERVER['REQUEST_URI']);

使用会话在两点之间定期传输信息可能会在用户打开多个标签时破坏浏览体验。

登录后,使用header()生成HTTP重定向:

if( isset($_GET['return']) && substr($_GET['return'], 0, 1)=='/' ){
    header('Location: http://example.com' . $_GET['return']);
    exit;
}else{
    header('Location: http://example.com/');
    exit;
}

答案 3 :(得分:0)

由于每个页面都必须自己检查登录用户(身份验证),因此我不会明确地调用登录页面。相反,目标页面将在必要时调用它并将其自身存储为登录目标(会话)。

示例:

article.php需要致电article_comment.php,但评论页面需要使用login.php登录。登录页面应在成功登录后调用评论页面。

  1. article.php直接致电article_comment.php
  2. article_comment.php页面检查用户是否已登录并在必要时调用login.php。在重定向到login.php页面之前,它将登录目标存储为自己$_SESSION['loginTarget'] = 'article_comment.php';
  3. 登录页面成功完成后,会调用登录目标。 header('Location: '.$_SESSION['loginTarget'], true, 303); exit;
  4. 这种方式不会中断链接的自然方式(article.php可以直接调用article_comment.php)。由于登录目标存储在会话中,因此您可以轻松地在登录页面上进行错误处理,甚至可以创建新的用户帐户。无论如何都要检查登录用户,为什么不在必要时使用它来请求登录?

答案 4 :(得分:0)

你也可以简单地使用这样的东西.. !!

当用户需要重定向回页面时,让我们假设他想对post.php页面发表评论,但是当他尝试评论时,如果还没有登录,它将重定向到登录。所以,在yu重定向到他的时候登录页面,将get参数发送到登录页面,如

http://example.in/login.php?redirect_url=http://example.in/post.php

现在在login.php页面中处理此get参数,并且在验证凭据时,您可以将其重定向回通过get参数发送的url ..!

你的login.php可以是这样的

$redirect_url = $_GET['redirect_url']; 
if(authenticated)
{
  header("Location: $redirect_url");
}
else
{  }

希望这有帮助