2012-02-24 2 views
0

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

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

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

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

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

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

Спасибо заранее!

ответ

0

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

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

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

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

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

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

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

+0

Большое спасибо. Поскольку доступ будет таким недолговечным (пару дней максимум, хотя точное значение не было установлено), я, вероятно, просто проведу очистку базы данных с истекшими ключами один раз в день, чтобы сохранить размер базы данных разумно. В очередной раз благодарим за помощь. –

Смежные вопросы