как плавно генерировать html-содержимое страницы при автоматической авторизации пользователя с помощью php и ajax - PullRequest
1 голос
/ 26 марта 2011

HTML, генерируемый моими php-страницами, зависит от того, вошел ли пользователь в систему или нет. Например, если пользователь вошел в систему, отображается ссылка «Выход из системы»;если пользователь не вошел в систему, отображается ссылка «Логин».

Я реализую функцию автоматического входа.Когда пользователь входит в систему, он может установить флажок, чтобы сохранить его в системе. Если он установит этот флажок, случайный идентификатор создается и сохраняется в cookie-файле и сохраняется в базе данных вместе с его пользовательской информацией.(Это похоже на метод, описанный [здесь] [1].

. Я думаю о том, как реализовать это, чтобы php генерировал функцию javascript, если пользователь не вошел в систему, которая будет запрашиватьcookie от клиента. Если cookie не существует, я покажу ссылку «логин» на странице или перенаправлю страницу на экран входа в систему. Если cookie существует, я буду использовать ajax для передачи cookie в скрипт phpи снова войдите в систему.

Что мне делать дальше? Должен ли я использовать ajax для генерации ссылок "login" или "logout"? Это имеет смысл, но я чувствую, что использую ajax для генерации контента, который зависит отот того, вошел ли пользователь в систему, может быть сложно на некоторых из моих страниц. Возможно, я мог бы перезагрузить страницу в javascript? При этой вторичной загрузке php обнаружил бы, что пользователь вошел в систему, и отобразит страницу соответствующим образом.хотя между двумя загрузками страниц мерцание.

Любые идеи или предложения о том, как это сделать, чтобы пользователю было приятнос благодарностью.

Спасибо.

1 Ответ

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

Если вы все равно используете PHP для генерации страниц, почему бы не выполнить if ($is_logged_in) {...} проверки в php?

Просто получите доступ к файлу cookie как $_COOKIE['my_autologin_token'], проверьте его действительность и войдите в систему перед началом вывода любого HTML-кода.

Пример:

<?php

$is_logged_in = check_if_has_session();

if (!$is_logged_in AND isset($_COOKIE['my_autologin_token'])) {
    $token = $_COOKIE['my_autologin_token'];
    // get user id from database, based on $token
    // if is valid token/user_id set $is_logged_in = true;
}

?>
// html content start
<?php if ($is_logged_in) { /* "Log out" link */ } else { /* Login link */ } ?>
...