php& js:无法删除cookie

时间:2013-05-14 21:02:41

标签: php javascript

你能否告诉我为什么PHP和Javascript版本都不能删除名为" t"?

的脚本的cookie目标

(没有httponly,并且是通过js btw创建的)

<?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 个答案:

答案 0 :(得分:0)

我指向http://ca3.php.net/manual/en/function.setcookie.php,特别是那些说:“expire:Cookie过期的时间。这是一个Unix时间戳,所以是自纪元以来的秒数。”所以你不能给它一个负值,以及说:“如果设置为0,或者省略,那么cookie将在会话结束时到期。”

只需使用setcookie("t", "", false)即可。现在,对于浏览器向服务器发出的下一个请求,该cookie未被设置(就像真正的页面加载或ajax请求一样)。也就是说,cookie仅在HTTP请求阶段相关,除了设置服务器在多个请求中需要知道的值之外,您不应该使用它们。不要将它们用于页面上发生的事情(因此,不要试图通过JavaScript操纵它们,这不是它们相关的地方)。