Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Архив форумов ЦИТФорума
Море(!) вопросов - Море(!) ответов
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 
Как правильно задавать вопросы

Браузеры и Cookies (JavaScript, PHP)

 
Перейти:  
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Создание веб-сайтов
Предыдущая тема :: Следующая тема  
Автор Сообщение
misnik



Зарегистрирован: 29.07.2005
Сообщения: 5

СообщениеДобавлено: Пт Июл 29 2005 22:29    Заголовок сообщения: Браузеры и Cookies (JavaScript, PHP) Ответить с цитатой

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

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

Итак.

На форуме для отслеживания обновлений в темах и разделах я использую Cookie. Например, при открытии темы записывается следующий "кук": pbcforum_id_s_id_com, где s_id - это ID тему, а значение "кука" равно числу сообщений в теме в данный момент.
При открытии списка тем проверяется равенство "кука" числу сообщений в теме и на основе результата этого сравнения делается вывод о наличии новых сообщений. "Кук" ставится следующим JS-скриптом:

<script>
var to = 5*365*24*60*60*1000;
var expDate = new Date();
expDate.setTime(expDate.getTime() + to);

document.cookie = "pbcforum_id_s_id_com = $s_num; path=/; expires=" + expDate.toGMTString();
</script>";

Проверка осуществляется средствами PHP при генерации страницы.

Вроде, все правильно и должно работать.

Однако на практике часть "куков" умирает по непонятным причинам.

Выглядит это так. Захожу на форум, вижу 10 новых тем. Начинаю их просматривать, они становятся прочитанными. Вдруг открываю очередную тему, возвращаюсь к списоку, и вижу, что одна или две темы, которые 1 минуту назад были помечены как прочитанные, теперь отмечены, как имеющие новые сообщения. Начинаю разбираться, смотрю "куки" для данного домена - "кука" с данным ID просто нет (а 2 минуты назад - был, потому что я только что просматривал список и новых сообщений не было).

Можете сами проверить: http://rzforum.ru, откройте по порядку все темы, а потом рефрешните список тем.

И вот это происходит регулярно на всех браузерах (я смотрел в IE, Opera 7.51, Opera 8.01, Firefox). Хотя в теории вроде бы все правильно: "куки" записываются, имена "куков" не совпадают, expires установлены на 5 лет.

Но "куки" пропадают и это факт. А я не знаю, в чем дело: в браузере, который не хочет хранить два десятка "кук" для одного домена, в скриптах, в кривых руках или еще в чем-то.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Создание веб-сайтов Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2002 phpBB Group
Русская поддержка phpBB

 

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 6608306, ICQ 232284597
Пресс-релизы — pr@citforum.ru
Послать комментарий
Информация для авторов
This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2006 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...