Commit e26ef638 authored by Gábor Hojtsy's avatar Gábor Hojtsy

#178999 by sammys: register header(Location) as a shutdown function in...

#178999 by sammys: register header(Location) as a shutdown function in drupal_goto() so the redirection takes place after the session data was written to the database
parent a0ae9404
......@@ -306,11 +306,13 @@ function drupal_goto($path = '', $query = NULL, $fragment = NULL, $http_response
// Before the redirect, allow modules to react to the end of the page request.
module_invoke_all('exit', $url);
header('Location: '. $url, TRUE, $http_response_code);
// The "Location" header sends a REDIRECT status code to the http
// daemon. In some cases this can go wrong, so we make sure none
// of the code below the drupal_goto() call gets executed when we redirect.
// Here we register header() to be called after exit(). Because
// session_write_close() was registered before header() all session
// data will be written to the database before the header is sent to the
// browser.
register_shutdown_function('header', "Location: $url", TRUE, $http_response_code);
// Make sure none of the code below the drupal_goto() call gets executed.
exit();
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment