Redirecting to Previous Page after Login
The inability to redirect users to their intended destination after successful login can be a frustrating obstacle. By incorporating specific techniques and handling potential pitfalls, it's possible to resolve this issue effectively.
Solution: Utilizing a $_GET Variable
A common approach is to utilize a $_GET variable to capture the user's current page. When redirecting them to the login page, appending this variable allows the script to retrieve the desired destination after successful authentication. For instance, if a user is reading an article and attempts to leave a comment, the URL for the comment section (e.g., comment.php?articleid=17) should be passed to the login page via a $_GET variable.
Implementation:
In the code provided:
login.php: Send the user to the login page with the current page as a $_GET parameter:
header("Location:login.php?location=" . urlencode($_SERVER['REQUEST_URI']));
login-check.php: Retrieve the destination URL from the $_POST['location'] variable:
$redirect = NULL; if($_POST['location'] != '') { $redirect = $_POST['location']; }
If login is successful, redirect the user to the destination URL or the default page (if none is specified):
if(isset($_SESSION['id_login'])) { // if login is successful and there is a redirect address, send the user directly there if($redirect) { header("Location:". $redirect); } else { header("Location:login.php?p=3"); } exit(); }
Precautions:
The above is the detailed content of How to Redirect to Previous Page After Login in PHP?. For more information, please follow other related articles on the PHP Chinese website!