2014-01-18 92 views
0

在登录脚本中,我使用$ .cookie()jquery插件创建一个cookie。我设置cookie,像这样:

$.cookie('mbr_user_key', details, { expires: 365, path: '/' });

details上面,并给出该cookie设置就好了,这给它1年到期。

我用PHP创建了一个脚本,它使用存储的cookie获取最后登录的ip地址(当用户登录时存储)并根据当前IP地址进行检查。如果发现两个IP地址不同,则应该要求用户重新登录。

检查数据库中的IP地址与当前IP地址的脚本工作正常,唯一的障碍是如果它们不匹配时删除cookie。

我想这样做在PHP当然。这是脚本:

if($user_ip == $user_ip_db && $user_proxy == $user_proxy_db){ 
    $access = "allow"; 
} else { 
    unset($_COOKIE['mbr_user_key']); 
    setcookie('mbr_user_key', '', time() - 3600, '/'); 
    $access = "deny"; 
} 

但这是行不通的。

这工作...(但我觉得这是非常脏)

if($user_ip == $user_ip_db && $user_proxy == $user_proxy_db){ 
    $access = "allow"; 
} else { 
    ?><script>$.removeCookie('mbr_user_key');</script><?PHP 
    $access = "deny"; 
} 

无论哪种方式,这个脚本试图删除的cookie在头运行的基本的第一件事。上面没有回声,只有样式表和JavaScript链接在它上面。

有什么建议吗?

回答

0

要去猜测,因为我从来没有使用jQuery.cookie,但是域是一样的吗?也许你的Javascript文件位于与你的脚本不同的位置,这使得cookie不可用。

当你做什么var_dump($_COOKIE['mbr_user_key']);

+0

啊,所以他们必须来自同一页?或至少文件夹?我在做var_dump'“字符串(14)时得到这个”ntg-599d52-412“'我不知道字符串(14)是什么,但另一个混乱是半哈希cookie) – ntgCleaner