Ситуация пользователь долго сидел на странице А (главная личного кабинета например), потом кликнул на страницу Б (создать тему) но авторизация к этому времени уже слетела и его редиректит на заглушку где просят заново ввесли логин, пароль. Переход был не по ссылке, $_SERVER['HTTP_REFERER'] пустой.
Как после того как он введёт логин / пароль редирекнуть его сразу на страницу Б, куда он и хотел первоначально попасть?
По сути каки где при отсутствии сессии и реферера сохранить инфу о его целевой странице.
на крупных сервисах часто в параметр гет прописывают урл запроса, на который вернуться в случае удачной авторизации. Или в сессии как советует Сергей Соколов.
Так сессии уже нет, она по времени закончилась, поэтому его и редиректнуло на страницу повторного входа, а значит никакие данные из сессии после повторной авторизации я уже не могу достать, потому что при авторизации создалась уже новая сессия
Оптимус Пьян: вот он ломится на страницу Б. Там срабатывает участок кода, определивший, что сессии нет, юзер неизвестен, надо его авторизовывать. Вот тут он session_start() и кладёт в неё url текущей страницы, с пометкой «сюда его, как войдёт».
Т.е. ответ сервера со страницы Б будет редирект + установка новых свежих session cookies.
При авторизации в сессию добавится user_id, мол, авторизован юзер. И сохранится «сюда его» – куда и перекинет по завершении авторизации.