2016-02-02 165 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 =瀏覽器關閉後) –