Я пытаюсь установить и отключить файлы cookie с двумя разными командами POST. Я не смог заставить его фактически удалить файлы cookie, которые я установил с помощью первого POST.
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, '/');
}
}
Вы устанавливаете $cookie_name = "timein";
в первом операторе if, поэтому вы не можете правильно проверить его на второй, чтобы удалить его, поскольку он находится в неправильном объеме. Вы также должны использовать 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, '/');
}
}