Перенаправление на предыдущую страницу после входа в систему
Невозможность перенаправить пользователей в пункт назначения после успешного входа в систему может стать неприятным препятствием. Эту проблему можно эффективно решить, применяя определенные методы и устраняя потенциальные ловушки.
Решение: использование переменной $_GET
Распространенным подходом является использование переменной $_GET. Переменная _GET для захвата текущей страницы пользователя. При перенаправлении их на страницу входа добавление этой переменной позволяет сценарию получить желаемый пункт назначения после успешной аутентификации. Например, если пользователь читает статью и пытается оставить комментарий, URL-адрес раздела комментариев (например, comment.php?articleid=17) должен быть передан на страницу входа через переменную $_GET.
Реализация:
В коде предоставлено:
login.php: Отправьте пользователя на страницу входа с текущей страницей в качестве параметра $_GET:
header("Location:login.php?location=" . urlencode($_SERVER['REQUEST_URI']));
login-check.php: Получить целевой URL-адрес из переменной $_POST['location'] :
$redirect = NULL; if($_POST['location'] != '') { $redirect = $_POST['location']; }
Если вход выполнен успешно, перенаправить пользователя на целевой URL-адрес или страницу по умолчанию (если ничего не указано):
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(); }
Меры предосторожности:
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3