2015-10-18 34 views
0

當滿足第一個if語句的條件時,cookie「c2」也被設置。我真的在這裏撓頭。有任何想法嗎?僅供參考,這是處理此頁面上Cookie的唯一代碼。神祕地設置自己的Cookie

<?php 
    //set cookies on correct answers 
    if ($_POST['answer-1'] == 'rob') : 
     $c1 = 'correct'; 
     setcookie('c1', 'correct'); 
    endif; 
    if ($_POST['answer-2'] == 'blue') : 
     $c2 = 'correct'; 
     setcookie('c2', 'correct'); 
    endif; 

    //reset cookies 
    if (!empty($_POST['reset'])) : 
     $_COOKIE['c1'] = ''; 
     $_COOKIE['c2'] = ''; 
    endif; 

    $c1c = $_COOKIE['c1']; 
    $c2c = $_COOKIE['c2']; 
?> 
+0

拍攝。我錯了。當我更改cookie的名稱時,會發生同樣的行爲。 –

+2

當然你在嘗試之間清除了瀏覽器中的cookies? – adeneo

+0

是的。這就是//重置cookie的方法 –

回答

1

此:

//reset cookies 
if (!empty($_POST['reset'])) : 
    $_COOKIE['c1'] = ''; 
    $_COOKIE['c2'] = ''; 
endif; 

將重置全局$_COOKIE陣列使用這些值。但是頁面重新加載仍然會重新加載,因爲Cookie仍然有效並存儲在瀏覽器中。

爲了還從瀏覽器中刪除它們,你需要:

//reset cookies 
if (!empty($_POST['reset'])) : 
    $_COOKIE['c1'] = ''; 
    $_COOKIE['c2'] = ''; 
    setcookie('c1', '', -3600); 
    setcookie('c2', '', -3600); 
endif;