Использование куки с PHP и MySQL - Хорошая практика? - PullRequest
4 голосов
/ 14 апреля 2011

У меня есть сайт, который хранит настройки сайта зарегистрированного пользователя в базе данных MySQL, и я надеюсь изменить это так, чтобы незарегистрированные пользователи могли использовать файлы cookie браузера, чтобы также использовать конфигурации сайта.

Есть ли общий способ сделать это? Я хотел создать дополнительную таблицу базы данных с этими полями:

id
unique_cookie_hash
site_preferences

Где уникальный хеш-файл cookie - это то, что хранится в куки-файле посетителя, а настройки сайта - это строка в кодировке JSON, содержащая настройки гостевого пользователя. Таким образом, для пользователя, который не вошел в систему, сайт проверит наличие cookie. Если файл cookie существует, он попытается получить настройки через значение, сохраненное в файле cookie. Если файл cookie не существует или совпадение не найдено, сайт создаст его и присвоит ему некоторые значения по умолчанию.

Когда гость вносит изменения, сайт будет пытаться выполнить запрос UPDATE на свой unique_cookie_hash.

Я предполагаю, что это сработает (и это то, как это делают большинство сайтов?), Но, поскольку для меня это более новая концепция, мне было интересно, знает ли кто-нибудь какие-либо хорошие учебные пособия или "получил-я", за которыми стоит следить этот метод.

Спасибо.

Ответы [ 3 ]

3 голосов
/ 14 апреля 2011

Это сработает, просто обратите внимание, что, сериализовав ваши параметры в строку JSON, вы ничего не сможете выбрать из них.

Так что, если вы хотите узнать, какому числу зарегистрированных людей нравится цветовая схема A, напримервам нужно будет сделать весь код на PHP (по крайней мере, не громоздким способом).

0 голосов
/ 14 апреля 2011

Это зависит от количества настроек, но в целом я вообще не буду беспокоиться о базе данных, но сохраню их настройки в куки.

0 голосов
/ 14 апреля 2011

PHP имеет свой собственный набор функций для управления сессиями, и существуют альтернативные (некоторые могут сказать лучше) библиотеки для обработки сессий. Это сложная проблема с неожиданными соображениями безопасности, поэтому я бы не попробовал домашнее решение, не изучив его в первую очередь.

Предполагая, что вы изучили, как безопасно хранить информацию о сеансе, вы можете сохранить там настройки сайта пользователей, а когда пользователь входит в свою учетную запись, просто скопируйте свои сохраненные настройки в свою сессию, на которую сайт фактически будет действовать. .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...