2016-02-02 131 views
0

我有一个简单的页面,用户将登录,页面检查cookie是否存在以显示名称或登录按钮,但cookie未被取消设置。这是我的代码,问题在哪里?我尝试了不同的页面,但迄今为止没有任何工作请求Cookie未被删除

<?php 
$nombre_us = $_COOKIE['nombre_cookie']; 
function logout() { 
    if (isset($_COOKIE['nombre_cookie'])) { 
     unset($_COOKIE['nombre_cookie']); 
     setcookie('nombre_cookie', null, -1, '/'); 
     return true; 
    } else { 
     return false; 
    } 
} 
?> 
<div class="sample"> 
    <?php 
    if (!$nombre_us) { 
     echo '<a class="smp_btn" href="login.php?pageURL=' . $url . '">Login</a>'; 
    } 
    else { 
     echo '<span class="smp_text">' . $nombre_us . '</span>'; 
     echo '<a class="smp_text" href="' . $url . '" onclick="logout()">Logout</a>'; 
    } 
    ?> 
</div> 

谢谢!


所以现在我尝试用JavaScript代替PHP,但仍然没有。这里是这里是示例代码

<div class="sample"> 
<?php 
$nombre_us = $_COOKIE['nombre_cookie']; 
    if (!$members_name) { 
     echo '<a class="smp_btn" href="sample_login.php?pageURL=' . $url . '">Login</a>'; 
    } 
    else { 
     echo '<span class="smp_text">' . $members_name . '</span>'; 
     ?> 
     <a class="smp_text" href="<?php echo $url; ?>" onclick="delete_cookie('nombre_cookie')">Logout</a> 
       <?php 
       } 
       ?> 
      </div> 
    <script> 
     function delete_cookie(name) { 
      document.cookie = name +'=; Path=/; Expires=Thu, 01 Jan 1970 00:00:01 GMT;'; 
     } 
    </script> 
</div> 

回答

0

您不能设置-1setcookie()到期参数。您可以将其设置为最大值(到期2038)的2147483647

但onclick属性中的主要问题是logout()logout()是PHP函数。当点击a标记时,您正在调用JavaScript logout()函数。您需要使用ajax(XMLHttpRequest),您可以通过它来调用它。

+0

我试过用'time() - 3600'而不是'-1',但仍然不起作用 – Tavo

+0

它不能为负。 (0 =浏览器关闭后) –