Задать вопрос

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

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

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

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

PS: поиск в интернете даёт лишь варианты реализаций, но мне не удалось найти обсуждение подобной темы.
  • Вопрос задан
  • 5157 просмотров
Подписаться 5 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 1
Mandor
@Mandor
1. Данные пользователей (логин, пароль) лучше хранить в базе. В любом случае, займитесь освоением SQL - в дальнейшем пригодится.

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

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

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

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

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
IT ATLAS Москва
от 250 000 до 500 000 ₽