可以';t使用PHP POST删除Cookie


Can't Remove Cookie with PHP POST

我试图用两个不同的POST命令设置和取消设置cookie。我还没能让它真正删除我在第一次POST中设置的cookie。

if ($_POST['clockin'] == "Clock In") {  
    $cookie_name = "timein";
    $cookie_value = $id;
    setcookie($cookie_name, $cookie_value, time() + (86400), "/");
}
if ($_POST['clockout'] == "Clock Out") {    
    if (isset($_COOKIE[$cookie_name])) {
        unset($_COOKIE[$cookie_name]);
        setcookie($cookie_name, null, -1, '/');
    }
}

您只在第一个if语句中设置了$cookie_name = "timein";,因此您无法在第二个语句中正确检查它以将其删除,因为它位于错误的范围中。您还应该在登录请求变量之前使用isset(),以防止在不存在警告时发出警告。

// Set Cookie name outside if 
$cookie_name = "timein";
// Check if 'clockin' was submitted, then check the value
if (isset($_POST['clockin']) && $_POST['clockin'] == "Clock In") { 
    $cookie_value = $id;
    setcookie($cookie_name, $cookie_value, time() + (86400), "/");
}
// Check if 'clockout' was submitted, then check the value
if (isset($_POST['clockout']) && $_POST['clockout'] == "Clock Out") {    
    if (isset($_COOKIE[$cookie_name])) {
        unset($_COOKIE[$cookie_name]);
        setcookie($cookie_name, null, -1, '/');
    }
}