在Drupal中注册后重定向

时间:2009-07-24 03:59:34

标签: authentication drupal redirect

在用户出现登录屏幕并选择创建新帐户后,是否有人知道如何返回“最后一页”?

基本上顺序是:

  1. 用户尝试访问受保护的内容
  2. 重定向到登录页面
  3. 如果他登录,则会被重定向到原始页面
  4. 如果他选择“创建新帐户”并将其填写,则会将其重定向到主页
  5. 我们如何让他自动重定向到原始页面(而不是静态页面)。

2 个答案:

答案 0 :(得分:4)

有几种方法可以解决这个问题。最直接的是在导航中的某处将登录链接附加到URL。这个代码类似于:

<?php
  if (user_is_anonymous()) {
    $link = l(t('Login'), 'user/login', array('query' => drupal_get_destination()));
  }
?>

您还可以在admin / settings / error-reporting上设置自定义访问被拒绝页面,该页面可以转到输出上述代码的回调,也可以转到输出该代码的简单php节点。

此外,Drupal核心提供的用户登录块使用相同的方法将成功登录重定向回原始页面。

修改:请注意,上述方法很少会用于注册,因为其中涉及的步骤更多。具体来说,当用户需要验证电子邮件地址时,通过电子邮件传递始发目的地将涉及修改核心用户注册过程。

它可能仍会在配置为不验证电子邮件地址的网站上运行。然后,我们的想法是提供2个链接:1个用于登录,另一个用于注册,两个链接都传递目的地信息。

LoginToboggan也可能值得追求,但尚未提供确切的注册feature you're looking for

答案 1 :(得分:0)

直接php将包含此表单的标题:

<?php header("Location: " . $_SERVER['HTTP_REFERER']); ?>

有关更多信息,请参阅php manual

修改

您还可以在表单中包含隐藏字段并将其设置为

$url = $_SERVER['PHP_SELF']; // or HTTP_REFERER depending on the setup

将剪辑代码剪切到您的注册表单中。