使用php有条件地设置cookie

时间:2012-09-26 06:52:23

标签: php jquery cookies

我喜欢和不喜欢我视图中的多个帖子的按钮。

但我想限制投票,因此使用持续7天的cookie。

我使用$("a.btn-success").click(function()函数计算相应帖子的成功率并设置cookie。但我使用的php脚本即使没有点击按钮也会设置cookie。

<?php
   $expire=time()+60*60*24*30;
   setcookie("coupcookie", calledbyid, $expire);
?>

因此,如果我只刷新页面,我可以看到cookie已设置。

有谁能告诉我这里我做错了什么?

提前致谢。

修改

这是我的点击功能。

$("a.btn-success").click(function(){
        var calledby = $(this);
        var calledbyid=calledby.attr("id");
        <?php
             $expire=time()+60*60*24*30;
             setcookie("coupcookie", calledbyid, $expire);
        ?>
        var url = $(location).attr('href');
        var sub = window.location.pathname.split('/');
        alert("Hey button clicked "+calledbyid);
        $.post(url.replace(sub[2]+'/'+sub[3],'')+"home/vote",{ "id" : calledbyid, "vote" : 1 },  function(data){
            //alert("Hey post request completed");
            $.get(url.replace(sub[2]+'/'+sub[3],'')+"home/getsuccess", {"id": calledbyid}, function(result){
                $("#successrate"+calledbyid).html(result.concat('%'));
            }, "text").error(function(xhr, ajaxOptions, thrownError){
                alert(xhr.status);
                alert(thrownError);});

        }, "text").error(function(xhr, ajaxOptions, thrownError){
            alert(xhr.status);
            alert(thrownError);});
    });

3 个答案:

答案 0 :(得分:1)

您在生成Javascript代码时设置cookie

答案 1 :(得分:0)

PHP是一种服务器端技术,所以当你看到页面PHP 已经完成了他的工作时。所以,没有办法回应php中的客户端按钮点击(除了重新加载页面,但在你的情况下情况并非如此)。因此,您需要从php中删除setcookie并使用jQuery设置您的cookie。

有关详细信息,请参阅How to set/unset cookie with jQuery?

答案 2 :(得分:0)

我建议你自己使用jQuery,而不是使用PHP设置cookie。所以,它将是第一个using this

函数$("a.btn-success").click也包括:

$.cookie("coupcookie", calledbyid, { expires : 7 });