Ivanov
Новичок
Запутался с cookie и сессиями
Что-то я начитался разных статей, сообщений на форуме и запутался совсем.
У меня данные о пользователях хранятся в БД, при авторизации пользователя переменная ok становится истина и заполняются переменные, которые характеризуют права пользователя (доступ к разделам и пр.). Все эти переменные хранятся в массиве SESSIONS. В начале каждого скрипта стоит проверка переменой ok если истина - то хорошо, сли ложь - то авторизация.
Сессии храню в БД, максимальный срок хранения сессии выставлен на 7 дней.
Теперь я не пойму никак, каким образом мне сделать так, чтобы при закрытии браузера и заходе на следующий день у пользователя появлялась его информация из вчерашней сессии?
Вариантов несколько.
1. Как я понял из прочитанного на форуме (советы тем кто спрашивал про запоминание и авторизацию пользователей) и просмотра куков браузера - у этого форума для запоминания пользователя используются куки для хранения id пользователя, хеша пароля и даты последнего визита, по которым формируется информация при моем следующем заходе через запрос к БД по id и хешу пароля. При таком варианте, сессии нет смысла хранить в БД. Но у меня права доступа к разделам именно хранятся в сессиях (как вариант замены - проверять права пользователя при каждом запросе соответствующего раздела отдельным запросом к БД используя его id и пароль - не совсем удобно)
2. Если после успешной авторизации выдавать пользователю куку с SID по которому потом выбирать информацию из таблицы с данными о сессиях? Как минус вижу то, что такую куку может взять кто угодно с компа и стать "авторизованным" с соответствующими правами.
3. После авторизации пользователя привязать SID к его учетной записи, в таблицу с данными о сессиях вносить дату последнего изменения сессии и проверять ее с максимальным временем "жизни". Выдавать куку пользователю с его id и хешем пароля, потом проводить проверку на наличие такого в БД и по SID получать данные сессии. Но чем он тогда принципиально отличается от варианта 2?
Вобщем я в тупике. Одна путаница в голове. Подскажите как мне при хранении сессий в БД после закрытия браузера и повторного посещения страницы выдать пользователю ту информацию, которая была в "его переменных" SESSIONS до закрытия браузера?
Что-то я начитался разных статей, сообщений на форуме и запутался совсем.
У меня данные о пользователях хранятся в БД, при авторизации пользователя переменная ok становится истина и заполняются переменные, которые характеризуют права пользователя (доступ к разделам и пр.). Все эти переменные хранятся в массиве SESSIONS. В начале каждого скрипта стоит проверка переменой ok если истина - то хорошо, сли ложь - то авторизация.
Сессии храню в БД, максимальный срок хранения сессии выставлен на 7 дней.
Теперь я не пойму никак, каким образом мне сделать так, чтобы при закрытии браузера и заходе на следующий день у пользователя появлялась его информация из вчерашней сессии?
Вариантов несколько.
1. Как я понял из прочитанного на форуме (советы тем кто спрашивал про запоминание и авторизацию пользователей) и просмотра куков браузера - у этого форума для запоминания пользователя используются куки для хранения id пользователя, хеша пароля и даты последнего визита, по которым формируется информация при моем следующем заходе через запрос к БД по id и хешу пароля. При таком варианте, сессии нет смысла хранить в БД. Но у меня права доступа к разделам именно хранятся в сессиях (как вариант замены - проверять права пользователя при каждом запросе соответствующего раздела отдельным запросом к БД используя его id и пароль - не совсем удобно)
2. Если после успешной авторизации выдавать пользователю куку с SID по которому потом выбирать информацию из таблицы с данными о сессиях? Как минус вижу то, что такую куку может взять кто угодно с компа и стать "авторизованным" с соответствующими правами.
3. После авторизации пользователя привязать SID к его учетной записи, в таблицу с данными о сессиях вносить дату последнего изменения сессии и проверять ее с максимальным временем "жизни". Выдавать куку пользователю с его id и хешем пароля, потом проводить проверку на наличие такого в БД и по SID получать данные сессии. Но чем он тогда принципиально отличается от варианта 2?
Вобщем я в тупике. Одна путаница в голове. Подскажите как мне при хранении сессий в БД после закрытия браузера и повторного посещения страницы выдать пользователю ту информацию, которая была в "его переменных" SESSIONS до закрытия браузера?