2

I have a page which makes certain verifications and needs to redirect the user in certain cases. In those cases, I want the destination page to show a message, but I can't get it to work. Here is my code:

if ($userNeedsToBeRedirected) {
  drupal_set_message(null, "You've been redirected because ...");
  drupal_goto('destination');
}

The redirection works, but the message doesn't appear. What can I do?

Note: I also tried the following:

if ($userNeedsToBeRedirected) {
  drupal_goto('destination', array(
    'query' => array(
      'message' => "You've been redirected because ..."
    )
  ));
}

and in the destination page:

if (isset($_GET['message'])) {
  drupal_set_message(null, $_GET['message']);
}

but is doesn't work either because (I believe) drupal_set_message is being called too late the the page creation process.

1 Answer 1

3

You are setting a NULL message in drupal_set_message, the correct syntax would be:

if ($userNeedsToBeRedirected) {
  drupal_set_message("You've been redirected because ...");
  drupal_goto('destination');
}

The second drupal_set_message $type parameter is for the message type:

  • 'status'
  • 'warning'
  • 'error'
0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.