Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Не удаляется кука?
 
 автор: muravey   (07.07.2011 в 17:04)   письмо автору
 
 

Доброго всем времени суток!

Странно получается

удаляю куку

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



Почему так? Помогите разобраться?

  Ответить  
 
 автор: cheops   (08.07.2011 в 11:03)   письмо автору
 
   для: muravey   (07.07.2011 в 17:04)
 

Вместо 0 в функции setcookie() попробуйте поставить текущее время time().

  Ответить  
 
 автор: muravey   (08.07.2011 в 11:17)   письмо автору
 
   для: 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

сервер дает команду на удаление, а браузер не удаляет?

  Ответить  
 
 автор: devil943   (08.07.2011 в 11:18)   письмо автору
 
   для: muravey   (08.07.2011 в 11:17)
 

Прововали другим браузером?

  Ответить  
 
 автор: muravey   (08.07.2011 в 11:20)   письмо автору
 
   для: devil943   (08.07.2011 в 11:18)
 

Сначало в хроме обноружил ошибку, а потом стал в фоксе искать причину проблемы.

  Ответить  
 
 автор: devil943   (08.07.2011 в 11:30)   письмо автору
 
   для: muravey   (08.07.2011 в 11:20)
 

Т.е проблема во всех браузерах? Дайте код, который грохает куку, желательно целиком.

  Ответить  
 
 автор: muravey   (08.07.2011 в 11:39)   письмо автору
 
   для: devil943   (08.07.2011 в 11:30)
 


session_start();

function destroy_cookie()
{
setcookie("login", "", 0);
$_SESSION = array();
destroy_session();
}



и вызываю функцию из скрипта, после выполнения скрипта делаю редирект страницы на себя

  Ответить  
 
 автор: devil943   (08.07.2011 в 11:42)   письмо автору
 
   для: muravey   (08.07.2011 в 11:39)
 

Попробуйте так, толкьо непонятно, где вы вызываете destroy_cookie?

session_start(); 

function destroy_cookie()  { 
  setcookie('login', '', 0, time() - 3600); 
  unset($_SESSION);

  Ответить  
 
 автор: muravey   (08.07.2011 в 11:48)   письмо автору
 
   для: devil943   (08.07.2011 в 11:42)
 

logout.php


//подкл функц

destroy_cookie() ;

//редирект на index.php


Извиняюсь, что так показываю исходники не подрукой, но алгоритм такой.

  Ответить  
 
 автор: muravey   (08.07.2011 в 11:42)   письмо автору
 
   для: muravey   (08.07.2011 в 11:39)
 

Просто по такому алгоритму я вдругом приложении делаю тоже самое, все работает!

Что такое может быть?

  Ответить  
 
 автор: devil943   (08.07.2011 в 11:44)   письмо автору
 
   для: muravey   (08.07.2011 в 11:42)
 

Тогда покажите, как вы ставите куки. Может быть для какого-то домена?

  Ответить  
 
 автор: muravey   (08.07.2011 в 11:51)   письмо автору
 
   для: devil943   (08.07.2011 в 11:44)
 

setcookie("login", $_SESSION['login'], time()+3600)

устанавливается все нормально

  Ответить  
 
 автор: muravey   (08.07.2011 в 11:53)   письмо автору
 
   для: muravey   (08.07.2011 в 11:51)
 

Я думаю что что то с заголовками, я просто не о чень в этой теме.

как проверить, что браузер все делает или нет чтобы удалить куку?

  Ответить  
 
 автор: devil943   (08.07.2011 в 13:00)   письмо автору
 
   для: 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);
?>

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования