Как я могу отслеживать доступ пользователя к нескольким частям контента? - PullRequest
0 голосов
/ 25 февраля 2012

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

Как только им будет предоставлен доступ, я хотел бы, чтобы они продолжали иметь доступ в течение установленного периода времени.

Я думаю, что таблица базы данных может хранить cookie_id, issue_id и срок действия. Когда пользователь получает доступ к своей первой проблеме, на его компьютере сохраняется cookie, содержащий новый уникальный идентификатор. Этот уникальный идентификатор, идентификатор проблемы для контента, к которому они только что получили доступ, и дата истечения срока хранения сохраняются в базе данных.

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

Когда они возвращаются на сайт, cookie-файл используется для извлечения всех связанных записей базы данных и позволяет пользователю повторно посещать любые из этих статей до истечения срока их действия.

Есть ли более разумный способ сделать это?

Заранее спасибо!

1 Ответ

0 голосов
/ 26 февраля 2012

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

Однако ваше решение в основном то, что я хотел бы сделать.

Вот что я хотел быделать ...

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

На последующих страницах проверьте, является ли идентификатор cookie идентификаторомset (возможно, сохраните запрос к базе данных - если вам не нужно извлекать дополнительную информацию о пользователях - и таким образом уменьшите нагрузку на сервер).

Я бы использовал таблицу базы данных и использовал их идентификатор пользователя в качестве ссылки для дальнейшегодоступ, чтобы получить предыдущие проблемы читать.Если есть (или будет) много пользователей, рассмотрите возможность размещения всей информации в одной записи в базе данных и вставки данных в указанном формате, например выпуск1: дата1, выпуск2: дата2 и т. Д. .для обновления потребуется только 1 дБ запрос на добавление, обновление и / или удаление записей.

Однако для этого я мог бы серьезно проверить решения локального хранилища в HTML5 - я еще не проверял, чтобы использовать это или какну это поддерживается.

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