У меня есть несколько страниц jsp, которые мне нужно преобразовать на php-страницах. в моем jsp я могу получить зарегистрированного пользователя с помощью этого request.getUserPrincipal().getName()
. Как мне это сделать на моей php-странице, чтобы получить зарегистрированного пользователя?
У вас может быть таблица с именем logged_users
которая структурирована следующим образом:
id | user_id | created
------------------------------------------------------------------------
abc | 1 | 11-12-2014 12:31:51
xyz | 2 | 11-12-2014 08:21:13
id имеет уникальный id
, например UUID
или случайно сгенерированную строку. user_id - это идентификатор пользователя для запоминания. создается, когда запись была создана (чтобы вы могли выйти из системы после X-времени).
Теперь, если пользователь успешно войдет в систему и хочет, чтобы его запомнили, вы добавляете новую запись с уникальным идентификатором и его user_id
в logged_users
. Вы также создаете новый файл cookie с помощью setcookie()
который будет содержать случайно сгенерированный id
вы только что вставили.
Теперь, когда пользователь запрашивает сайт в следующий раз, вы видите, что он хранит сохраненный файл cookie. Вы получите эту запись, проверьте, не истечет ли ее срок действия, и используйте столбец user_id
для входа в соответствующий пользователь. Таким образом, вы не храните конфиденциальную информацию в файле cookie.
OR
Во-первых, убедитесь, что вы включили переменную сеанса на всех страницах, для которых требуется знание состояния входа в систему, поставив это в начале этих страниц:
session_start();
Затем, когда пользователь отправляет свое имя пользователя и пароль с помощью формы входа, вы обычно проверяете свое имя пользователя и пароль, запрашивая базу данных, содержащую информацию о имени пользователя и пароле, такую как MySQL. Если база данных возвращает совпадение, вы можете установить переменную сеанса, чтобы она содержала этот факт. Вы также можете указать другую информацию:
if (match_found_in_database()) {
$_SESSION['loggedin'] = true;
$_SESSION['username'] = $username; // $username coming from the form, such as $_POST['username']
// something like this is optional, of course
}
Затем на странице, которая зависит от состояния входа в систему, поставьте следующее (не забудьте session_start()
):
if (isset($_SESSION['loggedin']) && $_SESSION['loggedin'] == true) {
echo "Welcome to the member area, " . $_SESSION['username'] . "!";
} else {
echo "Please log in first to see this page.";
}
Это основные компоненты. Если вам нужна помощь в аспекте SQL, в сети есть учебные пособия.
Надеюсь, это поможет вам.
$request->getUserPrincipal()->getName()
если вы имеете в виду синтаксис. В противном случае вам нужно предоставить тот же интерфейс