2014-01-18 130 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