Не удается удалить cookie с помощью PHP POST

1

Я пытаюсь установить и отключить файлы 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, '/');
    }
}
  • 1
    файлы cookie устанавливаются только после загрузки страницы. проверьте наличие ошибок и опубликуйте все, что имеет отношение к этому, например, форму HTML, которая идет с этим.
  • 0
    Если первое сообщение не совпадает, $ cookie_name будет нулевым. Переместите $ cookie_name = "timein" за пределы первого оператора if.
Показать ещё 1 комментарий
Теги:
cookies
post

1 ответ

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, '/');
    }
}
  • 0
    Это решение части проблемы, но я понял, что другая часть заключается в том, что он у меня есть, поэтому, когда данные публикуются (то есть, когда нажимается кнопка отправки), это отключает поле и фактически не может публиковать. Теперь я пытаюсь выяснить, как проверить, опубликовала ли она информацию перед отключением поля. Любые предложения приветствуются.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню