Back to previous page with header( "Location: " ); in PHP

PhpRedirectBack

Php Problem Overview


The title of this question kind of explains my question. How do I redirect the PHP page visitor back to their previous page with the header( "Location: URL of previous page" );

Php Solutions


Solution 1 - Php

try:

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

Note that this may not work with secure pages (HTTPS) and it's a pretty bad idea overall as the header can be hijacked, sending the user to some other destination. The header may not even be sent by the browser.

Ideally, you will want to either:

  • Append the return address to the request as a query variable (eg. ?back=/list)
  • Define a return page in your code (ie. all successful form submissions redirect to the listing page)
  • Provide the user the option of where they want to go next (eg. Save and continue editing or just Save)

Solution 2 - Php

Its so simple just use this

header("location:javascript://history.go(-1)");

Its working fine for me

Solution 3 - Php

Just a little addition: I believe it's a common and known thing to add exit; after the header function in case we don't want the rest of the code to load or execute...

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

Solution 4 - Php

You have to save that location somehow.

Say it's a POST form, just put the current location in a hidden field and then use it in the header() Location.

Solution 5 - Php

Just try this in Javascript:

 $previous = "javascript:history.go(-1)";

Or you can try it in PHP:

if(isset($_SERVER['HTTP_REFERER'])) {
    $previous = $_SERVER['HTTP_REFERER'];
}

Solution 6 - Php

Storing previous url in a session variable is bad, because the user might right click on multiple pages and then come back and save.

unless you save the previous url in the session variable to a hidden field in the form and after save header( "Location: save URL of calling page" );

Solution 7 - Php

I know this question focuses specifically on headers, but in case anyone would like to do it inside a button, this would suffice.

<button type="button" class="btn btn-default" onclick="javascript:history.go(-1)">Back</button>

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionWeb_DesignerView Question on Stackoverflow
Solution 1 - PhpDimitryView Answer on Stackoverflow
Solution 2 - PhpHammadView Answer on Stackoverflow
Solution 3 - Php6opkoView Answer on Stackoverflow
Solution 4 - PhpYour Common SenseView Answer on Stackoverflow
Solution 5 - PhpMinu AlexView Answer on Stackoverflow
Solution 6 - PhprudyView Answer on Stackoverflow
Solution 7 - PhpchobelaView Answer on Stackoverflow