【发布时间】:2012-03-09 02:25:54
【问题描述】:
用一个工作示例来描述我的问题是最简单的:即使您没有登录,YouTube 也会记住您看过的内容,并在下次根据之前观看的电影为您提供建议。
我的网站在某种程度上是相似的:用户无需登录即可对文章进行投票,并且该网站使用 cookie 记住投票。我已经找到了一种工作方法,但必须有一种更简单的方法——现在数据库的使用也没有得到优化。
对于每位访问者,都会检查他是否拥有 cookie。如果是,我质疑他的投票。如果不是,我创建一个虚拟用户,然后将 cookie 发送给他。现在我存储这个用户“last_visit”时间戳。在此之后,两个用户的一切都是一样的。我的问题是我的数据库被虚拟用户填满,所以我让我的 cookie 在 3 个月后过期,我的网站会定期检查哪些用户在过去 3 个月内没有访问我的网站,并将它们从数据库中删除。
我知道我把这件事复杂化了,但我的投票系统使用的是 AJAX,而且我找不到一种方法来发送 cookie(并创建虚拟用户),只有在投票发生而不是每次简单访问者浏览时我的网站 - 没有投票权。
另外请注意:我坚持使用 cookie - 我知道在投票发生时存储 IP 会更容易,但有些学校、企业使用相同的 IP,我希望允许他们的用户使用我的网站。
我在这里错过了什么?如何优化?
【问题讨论】:
标签: php mysql ajax cookies voting