Как организовать хранение данных на сайте и сессии пользователей?

Здравствуйте! Пишу сайты на PHP, в основном для себя.

1. Всегда задумывался как лучше хранить данные пользователей (логин, пароль и т.д.). Для меня всегда было проще писать в файл. Но более опытные товарищи твердят что правильней в базу. Потом могут быть проблемы, когда проект разрастётся. Хотел бы получить ответ на какие грабли я могу наткнуться в будущем.

2. Вопрос о сессиях пользователей. У меня часто возникают проблемы с куками пользователей. И вроде они прописались, но иногда пользователи видят табличку входа. Не исключаю что ошибки у меня. Как вариант решения после логина пользователю выдаю временную ссылку с id. Если пользователь не трогает адресную строку, то авторизация не "слетает". И здесь я так же понимаю что страдает безопасность. Возможны так же другие проблемы.

PS: поиск в интернете даёт лишь варианты реализаций, но мне не удалось найти обсуждение подобной темы.
  • Вопрос задан
  • 5066 просмотров
Решения вопроса 1
Mandor
@Mandor
1. Данные пользователей (логин, пароль) лучше хранить в базе. В любом случае, займитесь освоением SQL - в дальнейшем пригодится.

Хотел бы получить ответ на какие грабли я могу наткнуться в будущем.

Вкратце, вы можете начать делать собственный "сторадж-менеджер", когда поймете, что информации дохрена и её надо как-то структурировать, следующий шаг - наворотить "сторадж-менеджер" настолько, что это будет похоже собственную СУБД (той или иной степени кривости). Пропустите сразу все эти шаги.

2. Url с session id это не комильфо, исправьтесь на вариант с куками. "Вроде они прописались, но иногда пользователи видят табличку входа" - так быть не должно, ошибка у вас.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
nazarpc
@nazarpc
Open Source enthusiast
1. Поля с индексами - можно быстрее искать нужные записи, поддержка транзакций, репликация если очень большой проект. В целом гибче и надежнее получается, на то она и БД, чтобы хранить структурированные данные разного рода.
2. Просто разберитесь с таймаутами cookie. Например, если вы хотите чтобы куки присутствовали 2 дня с последнего входа - то кроме того, что указывать таймаут при создании куки её нужно время от времени пересоздавать с новым сроком годности. Тогда регулярные пользователи не будут получать Форму входа.
Ответ написан
Комментировать
1.Данные лучше хранить в базе по одной причине для пользователя при правильно написаном коде тяжело туда попасть, а вам легче.
2. Насчет авторизации, то это всем известно, что лучше работать с сессиями. Вот на то доводы:
- Все данные хранятся на стороне сервера и манипуляция с ними запрещена пользователю
- Может быть такое что у пользователя отключены кукиси и по этой причине он не сможет авторизоватся. С сессиями эта проблема отпадает.
Есть еще море плюов в использовании сессий но на как на меня то этого достаточно. Сейчас еденици пользуются кукисами.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы