读取多个cookie jQuery,PHP
我正在尝试做一些类似的事情,比如为评论投票。 我不为用户使用lo-gin,所以我想使用cookie来识别用户 我有一个脚本,除了一个问题外,效果非常好。它总是读取最后一个cookie,而不是以前创建的所有cookie。因此,如果有人投票,我刷新页面,一切正常,用户不能再投票了。因此,一个用户只能对同一条评论投票一次。问题是,如果我向上投了不同的评论,那么对于已经向上投了票的用户,上一个评论将再次可用于向上投 我猜我需要读取数组中的cookie还是创建一个循环读取多个cookie jQuery,PHP,php,jquery,Php,Jquery,我正在尝试做一些类似的事情,比如为评论投票。 我不为用户使用lo-gin,所以我想使用cookie来识别用户 我有一个脚本,除了一个问题外,效果非常好。它总是读取最后一个cookie,而不是以前创建的所有cookie。因此,如果有人投票,我刷新页面,一切正常,用户不能再投票了。因此,一个用户只能对同一条评论投票一次。问题是,如果我向上投了不同的评论,那么对于已经向上投了票的用户,上一个评论将再次可用于向上投 我猜我需要读取数组中的cookie还是创建一个循环 $(".comment-up").o
$(".comment-up").one("click", function(ev) {
ev.preventDefault();
var s = parseInt($(this).next('span').text());
var m = s + 1;
if (isNaN(m)) {
$(this).next('span').text(1);
} else {
$(this).next('span').text(m);
}
like = $(this).attr('name');
if (like == "") {
like = 0;
}
up_id = $(this).attr('value');
$.cookie("like", up_id, {path:'/', expires: 365 * 10 }); //set the cookie
<? php
$cookies = $_COOKIE["like"];
if ($cookies == null){$cookies = "";}
$already = "already";
echo 'if (up_id == "'.$cookies.'")
{
$(this).next("span").text(s);
$(this).after("<span class='.$already.'>You already up-voted</span>");
}
else{
';
?>
$.post("/index_api.php", {
up_id: up_id,
like: like
}, function(response) {
//placeholder
});
return false;
}
});
我还在数据库里储存投票结果。cookie可以检测是否有人已经投票。不确定我是否正确理解了您的问题,但您所做的问题是,您不断覆盖现有的cookie值,就像上次喜欢的帖子一样,因此,您的web应用程序基本上会忘记以前喜欢的帖子。
为了实现这一目标,您应该在like cookie中存储所有喜欢的帖子的JSON对象,或者为每个喜欢的帖子创建一个cookie,但这可能会稍微难以维护。bad_boy是正确的。您不断地更改类似cookie的值,而不是向其添加新值。我建议您阅读$.cookie jQuery插件的文档,再看一看PHP的$\u cookie documentation@Grasper首先,您应该记住cookie在内部使用一堆头。每收到一个请求,就发送一个。而且饼干有过期的趋势。关于存储文章/评论/任何内容的投票,最常见的方法是创建一个类似于注释id、投票、ip的表,并通过查询进行处理。@bad_boy,等等。我将它存储在db中。我只是使用cookies来确定是否有人因为我没有用户登录而投票升级。@Andrew,如果用户没有登录,这与cookies有什么不同?@Tom,你是对的,我正在覆盖它,但即使我使它成为动态的,php部分也需要以不同的方式处理。