Home > Article > Backend Development > How to Redirect Users Back to the Previous Page After Login?
Redirection to Previous Page After Login
When a user logs in to a website, it's often desirable to redirect them back to the page they were viewing before they logged in. This ensures a seamless browsing experience and allows users to continue their tasks.
To achieve this redirection, a common approach is to pass the user's current page URL as a query string parameter in the login form. For example:
<code class="php">header("Location:login.php?location=" . urlencode($_SERVER['REQUEST_URI']));</code>
This code adds a "location" parameter to the login page URL. The value of this parameter is the URL of the current page, encoded to ensure it's compatible with URL parameters.
In the login form, add a hidden input field to store the "location" parameter:
<code class="php">echo '<input type="hidden" name="location" value="'; if (isset($_GET['location'])) { echo htmlspecialchars($_GET['location']); } echo '" />';</code>
This input field will be populated when the login form is submitted.
In the login-check.php script, check if the "location" parameter is present in the POST data. If it is, store its value in a $redirect variable:
<code class="php">$redirect = NULL; if ($_POST['location'] != '') { $redirect = $_POST['location']; }</code>
If the login is successful, redirect the user to the $redirect URL instead of the default destination (e.g., "index.php"):
<code class="php">if (isset($redirect)) { header("Location:" . $redirect); } else { header("Location:login.php?p=3"); }</code>
Security Considerations
It's important to validate the $_GET['location'] parameter before redirecting the user. This prevents malicious users from redirecting users to harmful URLs. One way to validate the parameter is to check if it starts with the website's domain name.
The above is the detailed content of How to Redirect Users Back to the Previous Page After Login?. For more information, please follow other related articles on the PHP Chinese website!