2010-10-31 36 views
0

這是我在logout.php代碼Cookie不能正常工作的

<?php 
if(isset($_COOKIE['cookie-username']) || isset($_COOKIE['cookie-password'])) { 

    setcookie("cookie-username", NULL, time()-60*60*24*100); 
    setcookie("cookie-password", NULL, time()-60*60*24*100); 
} 
    header('Location: ../login') ; 
    ?> 

我可以證實餅乾存在,如果我做一個while循環,我得到
致命錯誤:允許內存大小的134217728字節耗盡(試圖分配79個字節)/home/ios/public_html/logout.php

這意味着它不能刪除第e cookies ... 我已經做了大量的谷歌搜索,但我不明白爲什麼它不會刪除所述cookie ...

幫助? 由於事先

編輯: 證明餅乾: http://cl.ly/1c31120de4b722518b05

創建的cookie:

if (isset($_POST['submit'])) { 

     try {   
      if (!isset($_POST['username']) || !isset($_POST['password']) || trim($_POST['username']) =='' || trim($_POST['password']) =='') {    throw new Exception('All Fields Are Required!'); 
      } 
      $username = strtolower($_POST['username']); 
      $password = md5(strtolower($_POST['password'])); 

      include('classes/config.php'); 

         [SQL REMOVED] 
      foreach ($pdo->query($sql) as $row) { 
       $dbPassword = $row['password']; 
      } 

      if (!isset($dbPassword)) { 
       throw new Exception('Invalid Username or Password!'); 
      } 

      if ($dbPassword == $password) { 
       if (!isset($_COOKIE['cookie-username']) || !isset($_COOKIE['cookie-password'])){ 

        $days = 1; 

        if (strtolower($_POST['remember']) == 'on') { 
         $days = 30; 
        } 


        setcookie("cookie-username", $username, time()+60*60*24*$days, "/"); 
        setcookie("cookie-password", $password, time()+60*60*24*$days, "/"); 

       } 

        echo '<META HTTP-EQUIV="Refresh" Content="0; URL=../index">';  
      } 
      else if ($dbPassword != $password) { 
       throw new Exception('Invalid Username or Password!'); 
      } 
     } 

      catch (Exception $e) { 
       $exception = $e->getMessage(); 
     } 
    } 
+0

好吧,它永遠不會退出while循環,所以cookies永遠不會被刪除。所以我99.99999999999999999%肯定它在那裏。 – willium 2010-10-31 10:45:13

+0

..這就是致命錯誤的原因。見@ meze的回答 – 2010-10-31 10:48:16

回答

1

刪除while循環。 setcookie不影響$ _COOKIE。

如果沒有幫助,試試這個:

<?php 
    setcookie("cookie-username", NULL, time()-60*60*24*100, "/", ".yourdomain.com"); 
    setcookie("cookie-password", NULL, time()-60*60*24*100, "/", ".yourdomain.com"); 
    header('Location: ../login') ; 
?> 

PS:另外這是一個壞主意來存儲登錄/密碼在cookie中,用於認證目的,它是更好地存儲標誌會話

+0

+1這就是它。它實際上是一個無限循環,填充內存直到崩潰。 – 2010-10-31 10:47:56

+0

好吧,所以它的無限,現在我改回它只是一個if語句,它仍然不能刪除cookie。 – willium 2010-10-31 10:49:28

+0

它變成了一個無限重定向循環,並且cookies不會刪除。 – willium 2010-10-31 10:51:14

0
<? 
setcookie('cookie-username', 0, -1); 
setcookie('cookie-password', 0, -1); 
header('Location: example.com/path/login'); 
?> 
  1. 此功能不扔東西,然後try不是可用您。
  2. $_COOKIES只有在腳本啓動時纔會刷新,如果您擦除了cookie,您將在下一次刷新結果中看到。
+0

同樣的事情發生在那。 – willium 2010-10-31 10:44:35