Ошибка перенаправления HTTP_REFERER при переходе на страницу только для членов с PHP - PullRequest
0 голосов
/ 11 марта 2011

Пока что мой скрипт перенаправления HTTP_REFERER выглядит примерно так на странице, где пользователь не может получить доступ (submit.php), пока не войдет в систему:

session_start();
 if(!isset($_SESSION['user_id'])) {
 header("Location: login.php");
 exit();
}

Это нормально, потому что, очевидно, еслиони пытаются перейти к submit.php, им нужно сначала войти в систему.Но после входа в систему они снова попадают в login.php, поскольку login.php была последней страницей, которую они посетили, а не submit.php (это должна быть правильная страница, на которую они пытаются попасть).

Это проблема только для страниц, которые не отображаются до тех пор, пока пользователь не войдет в систему. Например, если они перейдут в /contact.php, а затем войдут в систему, они вернутся обратно в contact.php, но это потому, чтоможно увидеть, когда они вышли из системы

Ответы [ 2 ]

1 голос
/ 11 марта 2011

Я стараюсь не использовать HTTP_REFERER, большую часть времени меня мучает головная боль.

Я бы предложил сохранить URL-адрес в сеансе, где они вводят ваше приложение, так что перед тем, как вы перенаправите и проверите, аутентифицированы ли они. Затем они нажмут логин и перенаправят их на страницу, сохраненную в вашем сеансе. Убедитесь, что вы не сохраняете страницу входа, если это так, перенаправьте на домашнюю страницу или другую страницу.

0 голосов
/ 11 марта 2011

Проверьте, находитесь ли вы на странице входа, и не перенаправляйте, если это так

if (!isset($_SESSION['user_id']) && ($_SERVER['SCRIPT_NAME'] != '/login.php')) {
    header(...);
}

.. show login form
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...