Как исправить показ никнейма пользователя после авторизации в шапке сайта, при этом сначала показывается никнейм другого пользователя?
Здравствуйте. Заметил ошибки в работе авторизации Bitrix:
Когда человек вводит верные данные в форме авторизации, то его перебрасывается на страницу PHP со значение в ссылке ?login=yes (так я задал условие в файле auth.php). В шапке сайта отображается никнейм пользователя с помощью переменной $USER->GetLogin() - возвращает логин текущего пользователя. Но проблема вот в чём, то что никнейм при перезаходе в личный кабинет отображается сначала никнейм предыдущего пользователя. К примеру, если я заходил одним пользователем в личный кабинет, а потом вышел и зашёл другим, то показывается в шапке сайта никнейм первого пользователя, но если обновить страницу, то данные будут показываться верные, то есть 2-ого пользователя (текущего). Также это не только с моими аккаунтами происходит, если входил примерно в тоже время какой-либо пользователь и потом захожу со своего аккаунта я, то показываются данные другого пользователя, который заходил до меня в систему. Также ещё бывает, когда входишь в личный кабинет, то в шапке вовсе показывается иногда, что типа я не в системе и там горит кнопка "Войти". Как фиксить всю эту ересь?!
Рекомендую обернуть Ваш хардкод $USER->GetLogin()
В компонент авторизации
там сделать простенький template с выводом
если $arResult['FORM_TYPE'] == "login" , тогда показываем кнопку Войти
если $arResult['FORM_TYPE'] == "logout" , показываем $arResult['USER_NAME'] или $arResult['USER_LOGIN']
SpeakeazyYT2,
На этой странице joxi.ru/l2ZXMzxhzDqbKr всё правильно!!!
Вверху написано Войти, т.к. авторизацию компонент совершил после загрузки шапки.
Можешь редиректить на главную страницу при успешной авторизации, либо ajax-ом обновлять кнопку Войти
SpeakeazyYT2,
свой код из шапки засунь в переопределёный template компонента system.auth.form
только проверяй не $USER->IsAuthorized() == false, а $arResult['FORM_TYPE'] == "login"
Kudis, Я правильно сделал, то что установил <?$APPLICATION->ShowViewContent('***');?> в footer.php, а саму форму поставил в template и обернул в SetViewTarget?
Kudis, Всё работает. Сначала появляется чужой ник пользователя, а потом мгновенное заменяется на нужный. А ещё есть вопрос. Вот делаю веб-формы, установил для них модуль от TS. Веб-формы работают на инфоблоках. В форме у меня присутствуют поля, одно из который, ник пользователя, который пользователи должны вводить самостоятельно. В настройках свойства в инфоблоке есть возможно указывать значение по умолчанию. Я хочу, чтобы это поле автоматически заполнялось ником текущего пользователя. Как это сделать?