Прежде всего, я мало что знаю о Symfony, поэтому я дам вам знать, что я делаю в PHP.
В зависимости от приложения я использую несколько методов.
Вариант 1: Я отправляю пользователя на страницу, на которую он должен войти, например, mydomain.com/landing.php и установите переменную SESSION
с URL-адресом перед перенаправлением на форму входа. После успешного входа в систему существует функция header
, которая будет перенаправлять на исходную страницу, где вошедший в систему пользователь теперь может взаимодействовать со страницей.
Вариант 2: Я создаю функцию входа в систему и там, где нет входа в систему SESSION
или COOKIE
форма вызывается, после отправки формы с использованием action="<? echo $_SERVER['PHP_SELF']; ?>
Я устанавливаю переменную POST
и перед вызовом любого тега HTML
у меня есть что-то вроде
if(isset($_POST['run_login'])) {
include('my_login_handler.php');
}
Это заботится о входе в систему и не требует перенаправления на целевую страницу, так как она обрабатывается в строке.
Вариант 3: Подобно варианту 2, я создаю функцию входа в систему здесь, здесь нет логина SESSION
или COOKIE
, но на этот раз я POST
данных в my_login_handler.php
вместо включения Это. После успешной аутентификации на сайте я вызываю header('Location: '.$_SERVER['HTTP_REFERER']);
, который будет перенаправлять на ссылающуюся страницу, означая, что мне не нужно устанавливать какие-либо специальные переменные COOKIES
или SESSION
для обработки, чтобы перенаправить обратно на целевую страницу.
Правильный вариант, независимо от того, находится он здесь или нет, будет зависеть от вашего приложения и того, что вы можете / нужно делать. Так что поиграйте с различными предложениями и посмотрите, что лучше всего работает в приложении, над которым вы сейчас работаете.
Удачи!