@deepin

Как универсально вернуть пользователя на ту же страницу с GET параметром?

protected function getPaginationPage()
    {
        if (isset($_GET['page'])) {
            if (filter_var($_GET['page'], FILTER_VALIDATE_INT, ['options' => ['min_range' => 1]])) {
                return $_GET['page'];
            } else {
                # тут нужен универсальный редирект на ?page=которая_была_до_этого
            }
        }
        return 1;
    }

в адресной строке, например, https://voynushka.loc/units/ground?page=2
теперь упырь начинает набирать https://voynushka.loc/units/ground?page=ффф
эта дичь остаётся в адресной строке и, естественно на данный момент ему будет показана выборка по return 1
а как его обратно вернуть, чтобы в адресной строке было https://voynushka.loc/units/ground?page=2?
то есть просто оставить там, где он косячит
универсально - это значит, что метод нужно применять не только по адресу https://voynushka.loc/units/ground
  • Вопрос задан
  • 90 просмотров
Решения вопроса 1
@deepin Автор вопроса
protected function getPaginationPage()
    {
        if (isset($_GET['page'])) {
            if (filter_var($_GET['page'], FILTER_VALIDATE_INT, ['options' => ['min_range' => 1]])) {
                $_SESSION['page_before'] = '/' . $_SERVER['QUERY_STRING'];
                return $_GET['page'];
            } 
            header('location: ' . $_SESSION['page_before']);
            exit();
        }
        return 1;
    }
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
# тут нужен универсальный редирект на ?page=которая_была_до_этого

первое - делать редирект внутри функции - так себе идея, таким должен заниматься контроллер, ну или роутер в крайнем случае, это логика поведения, а не логика модели.
второе - не морочьте себе голову поведением условно стукнутого юзера, не надо его переправлять куда-то "обратно", это проблема пользователя. Вы так "следилок" на чудилок не напасетесь. А если он поставит страницу 10000000000, тоже отслеживать откуда пришел? Не морочтесь, тупо отдайте первую и все.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
21 авг. 2019, в 00:43
500 руб./за проект
21 авг. 2019, в 00:14
1000 руб./за проект