осуществляется многошаговый импорт, у формы метод post, добавляется input с id сессии через bitrix_sessid_post(), переотправка формы осуществляется через jQuery.submit(). Выполняется где-то шагов 5, потом проверка check_bitrix_sessid() выдает false, почему?
На 5 шаге логаут-логин происходит мэйби?
Нет, такой логики нет
Функция простая как топор. function check_bitrix_sessid($varname='sessid') { $request = Main\Context::getCurrent()->getRequest(); return ( $request[$varname] === bitrix_sessid() || $request->getHeader('X-Bitrix-Csrf-Token') === bitrix_sessid() ); } Или начальная сессия дохнет или $request['sessid'] пустой на шаге, где вылетает. Второе можно отмести.
Да, думаю все же сессия умирает просто, щас буду логировать
Да, id сессии пользователя меняется тупо
А шаги долго выполняются? По умолчанию у битрикса вроде 24 минуты время жизни сессии. Может ini_set('session.gc_maxlifetime', 3600); перед подключением пролога поможет... Не уверен, потому что после каждого шага сессия пролонгируется, по опыту. Возможно в каких-то случаях это не так.
Может быть особенность проекта, там проблемы с безопасностью какие-то, а шаг выполняется секунд 30
Пока отключил проверку на сессию
Каждый шаг один и тот же код запускает?
Да, переотправляется та же форма
Обсуждают сегодня