|
|
|
| Доброго всем времени суток!
Странно получается
удаляю куку
setcookie("login", "", 0);
|
перезагружает, но кука остается
В другом приложении алгоритм работает.
Заголовки
http://localhost/itamit.com//servises/users/logout.php
GET /itamit.com//servises/users/logout.php HTTP/1.1
Host: localhost
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13 ( .NET CLR 3.5.30729)
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Referer: http://localhost/itamit.com//index.php
Cookie: id=5; login=itamit.com%40gmail.com; vc=1; PHPSESSID=812e4ee9c0bb473afe464b5df7afbd5b
HTTP/1.1 200 OK
Date: Thu, 07 Jul 2011 12:58:29 GMT
Server: Apache/2.2.4 (Win32) mod_ssl/2.2.4 OpenSSL/0.9.8k PHP/5.2.12
X-Powered-By: PHP/5.2.12
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Set-Cookie: login=deleted; expires=Wed, 07-Jul-2010 12:58:28 GMT
Content-Length: 86
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: text/html; charset=windows-1251
|
Почему так? Помогите разобраться? | |
|
|
|
|
|
|
|
для: muravey
(07.07.2011 в 17:04)
| | Вместо 0 в функции setcookie() попробуйте поставить текущее время time(). | |
|
|
|
|
|
|
|
для: cheops
(08.07.2011 в 11:03)
| | Не удаляет
setcookie("login", "", time());
|
и так тоже нет
setcookie("login", "", time() - 36000);
|
Почему в заголовке
Set-Cookie: login=deleted; expires=Wed, 07-Jul-2010 12:58:28 GMT
|
сервер дает команду на удаление, а браузер не удаляет? | |
|
|
|
|
|
|
|
для: muravey
(08.07.2011 в 11:17)
| | Прововали другим браузером? | |
|
|
|
|
|
|
|
для: devil943
(08.07.2011 в 11:18)
| | Сначало в хроме обноружил ошибку, а потом стал в фоксе искать причину проблемы. | |
|
|
|
|
|
|
|
для: muravey
(08.07.2011 в 11:20)
| | Т.е проблема во всех браузерах? Дайте код, который грохает куку, желательно целиком. | |
|
|
|
|
|
|
|
для: devil943
(08.07.2011 в 11:30)
| |
session_start();
function destroy_cookie()
{
setcookie("login", "", 0);
$_SESSION = array();
destroy_session();
}
|
и вызываю функцию из скрипта, после выполнения скрипта делаю редирект страницы на себя | |
|
|
|
|
|
|
|
для: muravey
(08.07.2011 в 11:39)
| | Попробуйте так, толкьо непонятно, где вы вызываете destroy_cookie?
session_start();
function destroy_cookie() {
setcookie('login', '', 0, time() - 3600);
unset($_SESSION);
}
|
| |
|
|
|
|
|
|
|
для: devil943
(08.07.2011 в 11:42)
| | logout.php
//подкл функц
destroy_cookie() ;
//редирект на index.php
|
Извиняюсь, что так показываю исходники не подрукой, но алгоритм такой. | |
|
|
|
|
|
|
|
для: muravey
(08.07.2011 в 11:39)
| | Просто по такому алгоритму я вдругом приложении делаю тоже самое, все работает!
Что такое может быть? | |
|
|
|
|
|
|
|
для: muravey
(08.07.2011 в 11:42)
| | Тогда покажите, как вы ставите куки. Может быть для какого-то домена? | |
|
|
|
|
|
|
|
для: devil943
(08.07.2011 в 11:44)
| |
setcookie("login", $_SESSION['login'], time()+3600)
|
устанавливается все нормально | |
|
|
|
|
|
|
|
для: muravey
(08.07.2011 в 11:51)
| | Я думаю что что то с заголовками, я просто не о чень в этой теме.
как проверить, что браузер все делает или нет чтобы удалить куку? | |
|
|
|
|
|
|
|
для: muravey
(08.07.2011 в 11:53)
| | При создании запроса к странице браузер отдает серверу куки. Код, представленный выше устанавливает новое время жизни кукам - прошедшее. Когда браузер получает такие куки, он их удаляет, т.к они просрочены.
Давайте еще раз. Создайте страницу logout.php, впишите туда код, представленный ниже и запустите ее:
<?php
session_start();
if(isset($_COOKIE['login'])) {
setcookie('login', '', time() - 3600);
header('Location: logout.php');
}
print_r($_COOKIE);
?>
|
| |
|
|
|