Перейти к контенту
  • 0

Начали слетать сессии


2rough4u

Вопрос

IPB 2.2

 

Ни с того ни с сего начали слетать сессии. Форум теряет сессию практически каждый второй запуск браузера (IE, Opera). Началось абсолютно на ровном месте, моды не ставил никае новые уже месяца три.

 

Пробовал очищать таблицу сессий, чинить её, оптимизировать - не помогает.

 

Остальные сайты с IPB-форумами помнят сессии нормально (это к тому, что не в бразуере проблема).

 

Вопроса два:

1) Из-за чего это может происходить?

2) Как это лучше дебажить? (Ведь перед посещением форума в браузере кука с данными о сохранённой сессии есть, тобиш форум её просто не принимает. Может отдебажить кук "приёмный пункт"... разобраться, почему он заворачивает данные о сессии из куки)

Ссылка на комментарий
Поделиться на других сайтах

Рекомендуемые сообщения

  • 0
Форум теряет сессию

возможно это с сервером "проблемы".

на вскидку сложно сказать.

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

Ссылка на комментарий
Поделиться на других сайтах

  • 0
Понял, в чём дело, вроде. У меня на куки pass_hash и session_id почему-то стали устанавливаться без срока действия, тобиш и умирают они по закрытию браузера... странно, почему оно так себя ведёт?
Ссылка на комментарий
Поделиться на других сайтах

  • 0

Чудеса какие-то происходят... форум действительно просто забывает сессию, храняющуюся в куках.

 

Сделал такой трейсинг небольшой в /sources/classes/class_session.php:

		if ( $this->session_id )
	{
		ECHO 1;
		//-----------------------------------------
		// We've checked the IP addy and browser, so we can assume that this is
		// a valid session.
		//-----------------------------------------

		if ( ($this->session_user_id != 0) and ( ! empty($this->session_user_id) ) )
		{
			ECHO 2;
			//-----------------------------------------
			// It's a member session, so load the member.
			//-----------------------------------------

			$this->load_member($this->session_user_id);

			//-----------------------------------------
			// Did we get a member?
			//-----------------------------------------

			if ( (! $this->member['id']) or ($this->member['id'] == 0) )
			{
				ECHO 3;
				$this->unload_member();
				$this->update_guest_session();
			}
			else
			{
				ECHO 4;
				$this->update_member_session();
			}
		}
		else
		{
			ECHO 5;
			$this->update_guest_session();
		}
	}
	else
	{
		ECHO 9;

		...(дальше код не имеет значения)...

 

Так вот, когда сидишь гостем, проход получается 1-5 стабильно, как и должно быть. Если залогиниться, то первый раз после авторизации проход получается 1-2-4, что тоже абсолютно нормально и правильно. Переход на другую страницу форума - проход по-прежнему сохраняется 1-2-4. А вот переход на третью по счёту страницу уже становится роковым, ибо проход слетает на 9, тобиш $this->session_id нулевой. Форум потерял идентификатор сессии.

 

Полтергейст...

Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

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

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить на вопрос...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.