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

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

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

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

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

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

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

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

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

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽