2013-05-14 78 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