【问题标题】:cookie - only vote oncecookie - 只投票一次
【发布时间】:2012-08-01 00:07:12
【问题描述】:

我有一个网页,用户可以在其中输入故事/事件,其他用户可以喜欢或不喜欢该帖子。

我想创建一个 cookie,允许用户在每个帖子中只投票一次(每个页面会有很多帖子)

我知道在用户删除他/她的 cookie 但帖子的重要性不高的情况下,将其存储在数据库中会是一种更好的方法。此外,我想为 cookie 创建一个数据库需要大量代码,而且数据库会很大,因为每个都有大量的帖子和点赞。

我认为创建一个 cookie 会是我需要的更好的选择

我不知道该怎么做,我在谷歌上搜索了高低,但我不知道是我搜索错误的关键词还是我缺乏知识让我失望

有人可以告诉我如何为我需要的东西创建这个 cookie

谢谢

【问题讨论】:

  • 在数据库中存储大量数据还不错,这就是数据库的用途。使用 cookie 会导致滥用,这对您来说可能并不重要,但对投票帖子的作者来说肯定很重要。如果我在这里对你的问题投 1000 票反对,你介意吗?

标签: javascript html


【解决方案1】:

cookie 的现代替代品是localStorage。这基本上是一个变量,其数据将保存在客户端的计算机上,因此您可以随时访问它,即使用户已经导航或重新启动了他的计算机。

这是相当直接的,例如你可以这样做:

function vote() {
    if(localStorage['votedForPost' + postid] == 'true') return; // abort if already voted
    // ...
    localStorage['votedForPost' + postid] = 'true'; // you can only store strings
}

唯一的缺点是它并非在所有浏览器中都可用,尤其是仍在使用的旧浏览器,例如 IE7。

【讨论】:

  • 这可以在哪些浏览器中使用?
  • @Louismoore18:Chrome、IE9、Opera、Safari 和 Firefox(不确定从哪个版本开始)。
  • Dr.Molle 对 OP 的评论仍然有效,而且 localStorage(即 HTML5)还没有被广泛使用。
  • @pimvdb 如果我发布了我的帖子代码,你认为你可以根据我的代码调整答案吗?
  • @Louismoore18:恐怕 Stack Overflow 不是一个免费的编码场所,而是一种在您遇到困难时可以帮助您的服务。我相信你可以通过这个例子得到它,它并不复杂。
【解决方案2】:

如果你想知道如何操作 cookie,这里是a good explanation with code

我的网站使用jQuery "cookies" plug-in

【讨论】:

    猜你喜欢
    • 2012-03-15
    • 1970-01-01
    • 2019-06-07
    • 1970-01-01
    • 1970-01-01
    • 2010-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多