php - 未设置 Cookie 但数据库已更改

标签 php jquery database cookies

我正在使用 jQuery 来让用户投票赞成/反对文章。当用户投票时,cookie 被设置为用户只能对一篇文章投票一次(不刷新 cookie)。这工作正常,除非用户投票并在投票后立即刷新页面:

jQuery:

$.post('vote.php',{id:id,field:field},function(){
// change button graphics
});

PHP:

setcookie(User::$cookieStart . User::$db_fields[$field_index], 
        $cookie . ':' . $id, time()+60*60*24*30,'/'); 
// This calls a function that effects the db
User::actionArticleTable($id,$field_index,1);

当用户刷新时,cookie 设置但 mysql-info 已更改,即使 db 代码在 cookie 代码之后也是如此。

最佳答案

Cookie 只是 HTML 页面中的标题项,因此在加载 vote.php 页面之前,cookie 不会发生任何变化。如果用户在 vote.php 页面返回之前刷新主页,则不会设置 cookie。下次用户访问此页面时,cookie 没问题,但如果您想立即阻止投票,请考虑通过 javascript 设置 cookie。

function setCookie(c_name,value,exdays) {
    var exdate=new Date();
    exdate.setDate(exdate.getDate() + exdays);
    var c_value=escape(value) + ((exdays==null) ? "" : "; expires="+exdate.toUTCString());
    document.cookie=c_name + "=" + c_value;
}

关于php - 未设置 Cookie 但数据库已更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13702302/

相关文章:

php - 如何在 NelmioAlice 的实体构造函数中设置 ArrayCollection 的固定装置

PHP fatal error : Call to undefined function?

jquery - 单击离开页面按钮后页面重新加载后,beforeunload 在 Safari 9.1 中不起作用

php - 根据帖子的用户名在 php mysql 博客上显示图像

node.js - heroku 上的 NedB 不保留数据库文件

sql - 如何在 Postgres 中进行昵称搜索

php - 查询查询查询

c# - 是否有适用于 ASP.NET 的免费或付费的就地可编辑语法荧光笔控件?

javascript - AddEventListener 不在 $(document).ready() 内工作

javascript - InstantClick 未绑定(bind)到动态 href