Файл cookie с учетными данными для входа создается на нашем сервере сценарием ASP. В другом каталоге у нас есть скрипты PHP, которым нужен доступ просто имя пользователя из этого файла cookie, что успешно. Проблема в том, что когда вы нажимаете кнопку выхода, которая переводит пользователя на logout.php, cookie не уничтожается. Моя страница появляется, сообщая пользователю, что он вышел из системы, конечно, но у меня есть тестовая ссылка на странице, которая вернет вас к основному index.php, на котором вы не должны видеть контент, если вы не вошли в систему. , но вы все еще делаете. Используя Firecookie, я вижу, что cookie не уничтожается после завершения загрузки logout.php. Я пробовал обычные методы пока безуспешно.
<?php
session_start();
session_unset();
session_destroy();
unset($_COOKIE["creds"]);
setcookie("creds", "", time()-3600);
?>
Любые идеи?
Когда ты звонишь setcookie()
чтобы удалить ранее установленный файл cookie, вам необходимо передать те же значения для дорожка и домен которые использовались при установке cookie. Если он был установлен с помощью ASP, то какие исходные параметры использовались?
setcookie($name, $value, $expire, $path, $domain)
Обратите внимание, что $path
по умолчанию будет использоваться текущий каталог, если он опущен, и, как вы говорите, ваши сценарии PHP находятся в другом каталоге, чем ваш сценарий ASP, так что это предотвратит удаление cookie. Может быть, он был установлен для всего домена? т.е. "/"
unset($_COOKIE["creds"]);
просто удаляет этот файл cookie из суперглобала $ _COOKIE для текущего запроса, на самом деле он не удаляет файл cookie. Но это хорошая идея, если вы проверяете значение $_COOKIE['creds']
позже в вашем сценарии.
Отлично, вот что было. Спасибо, сэр.
Для всех, кому было интересно, я заменил исходный предоставленный код этим ...
setcookie("creds", $_COOKIE["creds"], time()-3600, "/");
... как было предложено.
Еще раз спасибо.