我试图用两个不同的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, '/');
}
}