2013-05-14 74 views
0

您能否告訴我爲什麼PHP和Javascript版本無法刪除名爲「t」的腳本的cookie目標? 「到期::cookie過期的時間這是一個Unix時間戳所以php&js:無法刪除cookie

<?php 
    include('functions.php'); 
    sec_session_start(); 
    $lang = check_lang(); 
    include("../config/lang/".$lang.".php"); 

    // Unset all session values 
    $_SESSION = array(); 

    // get session parameters 
    $params = session_get_cookie_params(); 

    // Delete the actual cookie. 
    setcookie(session_name(), '', time() - 42000, $params["path"], $params["domain"], $params["secure"], $params["httponly"]); 
    setcookie('t',"",-3600); //<-- this one doesn't work) 

    // Destroy session 
    session_destroy(); 

    echo "<script language='javascript'> 
     function del_cookie(name) { 
      document.cookie = name + '=; expires=Thu, 01-Jan-70 00:00:01 GMT;'; 
     } 
     del_cookie('t'); //<-- this one neither. 
     </script> 
     <h1>$l[logout_ok]</h1>"; 
?> 
+1

嘗試時間() - 3600 – Drahcir

+0

^作爲@Gerve說..(使它成爲答案;)) – Wrikken

+0

已經嘗試過,這並沒有工作。 – lyllo

回答

0

我點你http://ca3.php.net/manual/en/function.setcookie.php,特別是說的部分(不僅Http,並已通過BTW JS創建)是從紀元開始的秒數。「所以你不能給它一個負值,以及部分說:「如果設置爲0,或省略,cookie將在會話結束時過期。」

只要使用setcookie("t", "", false),並完成。該cookie現在未被設置爲瀏覽器向服務器發出的下一個請求(即作爲真實頁面加載或ajax請求)。也就是說,cookie只在HTTP請求階段相關,除了設置服務器跨多個請求需要了解的值之外,您不應該使用它們。不要將它們用於頁面上發生的事情(因此,不要試圖通過JavaScript來操縱它們,這不是它們相關的地方)。

+0

_「這個cookie現在是未設置的」_當你問好用戶關閉他的瀏覽器時,如果他使用的是Firefox,請問他很好地[禁用他的恢復功能](http://stackoverflow.com/questions/777767/firefox-session-cookies) – Wrikken

+0

沒有用,正如我所料。 – lyllo