How can PHP handle login redirects using HTTP-REFERER or GET parameters for efficient navigation?

When a user logs in, it is common to redirect them back to the page they were on before logging in. This can be achieved by storing the current page URL in a session variable or passing it as a GET parameter in the login form. By checking the HTTP_REFERER header or the GET parameter, PHP can efficiently redirect the user back to the previous page after successful login.

// Check if a redirect URL is present in the GET parameters
if(isset($_GET['redirect'])){
    $redirect_url = $_GET['redirect'];
} else {
    // If not, check the HTTP_REFERER header
    $redirect_url = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : 'index.php';
}

// Perform login logic here

// Redirect the user back to the previous page or a default page
header("Location: $redirect_url");
exit();