Jared
Jared

Reputation: 7233

Redirect After Registration in Drupal

Any one know how to go back to the "last page" after a user is presented the login screen and chooses to create a new account?

Basically the sequence is this:

  1. User tries to get to protected content
  2. Redirected to login page
  3. If he logs in he is redirected to original page
  4. If he chooses "create new account" and fills it out, he is redirected to the home page

How do we get him automatically redirected to the original page (not a static page).

Upvotes: 3

Views: 5865

Answers (2)

dassouki
dassouki

Reputation: 6366

straight php would be to include a header of this form:

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

for more information refer to the php manual

EDIT:

you can also include a hidden field in your form and set it to

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

include the header code snipped to your registration form.

Upvotes: 0

jhedstrom
jhedstrom

Reputation: 3388

There are several ways to go about this. The most straight-forward is to have a login link somewhere in the navigation that appends the destination to the url. The code for this is something like:

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

You can also set a custom access denied page at admin/settings/error-reporting that could either go to a callback that outputs the above code, or to a simple php node that outputs that code.

Additionally, the user login block provided with Drupal core uses the same method to redirect a successful login back to the originating page.

Edit: Note that the above methods will rarely work for registration, because there are more steps involved there. Specifically, when a user needs to verify an email address, passing the originating destination along via the email would involve modifying the core user registration process.

It will potentially still work on a site configured to not verify email addresses. The idea then would be to provide 2 links: 1 for login and the other for registration, both passing along destination information.

LoginToboggan may also be worth pursuing, although it doesn't yet offer the exact registration feature you're looking for.

Upvotes: 4

Related Questions