Уничтожить куки не работает в подкаталоге

Я думаю, что может быть что-то, что я не получаю о куки. Я пытаюсь уничтожить куки, когда нажимаю на кнопку, но куки остаются. Я знаю, что инструкции для файлов cookie должны быть перед HTML-кодами, поэтому я создал новую страницу php без HTML-кода, logout.php:

<?php

if (isset($_COOKIE['pseudocookie'])) {
setcookie('pseudocookie', '', time()-300);
}

if(session_id() == '') {
session_start();
}

session_destroy();
session_unset();

header('Location: ../index.php'); ?>

И я вызываю страницу из index.php с помощью простой кнопки:

<input type="button" id="ButSignout" value="Sign out" onclick="window.location.href='pages/logout.php'" />

Я сделал несколько тестов, страница php хорошо загружена, если я пытаюсь удалить cookie непосредственно из index.php, он работает. Что мне не хватает? Заранее спасибо.


Файл cookie был создан с помощью:

setcookie('pseudocookie','Pseudo cookie',time()+$expire, null, null, false, true);

Когда я пробую этот код в logout.php без заголовка, я вижу новое значение печенья.

if (isset($_COOKIE['pseudocookie'])) {
//setcookie('pseudocookie', '', time()-300);

echo "test";
setcookie('pseudocookie','Cookie cookie',time()+3600);
echo $_COOKIE['pseudocookie'];
unset($_COOKIE['pseudocookie']);
}

Но когда я возвращаюсь на index.php, где печатают cookie, он показывает его предыдущее значение. Кажется, что cookie автоматически получает свое предыдущее значение при перезагрузке index.php, хотя в коде index.php нет setcookie …

2

Решение

http://php.net/manual/en/function.setcookie.php

Я полагаю, что проблема может быть связана с тем, как вы создали куки. Вы использовали null $ путь вместо /так что куки могут быть недоступны на /pages и, следовательно, ваш if (isset($_COOKIE['pseudocookie'])) условие не выполняется в /pages/logout.php,

Вы можете проверить это, повторив внутри if isset.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]