Битрикс компонент изменения пароля
Недавно на одном из форумов, посвященных битриксу, нашел запись, где человек ищет битрикс компонент изменения пароля. Оказалось, простейший компонент отсутствует в системе. Поменять пароль в битрикс можно либо через профиль пользователя (bitrix:main.profile) либо при помощи отправки контрольной строки на емайл, перейдя по ссылке “забыли пароль”. Отдельного компонента изменения пароля в битриксе, к сожалению нету.
Я сделал этот компонент.
Давайте рассмотрим где могут лежать компоненты в битриксе:
- в папке /bitrix/components/bitrix/ лежат стандартные компоненты битрикса
- в папке /bitrix/components/название_компонента/ лежат компоненты, не являющиеся частью стандартной системы
- также нестандартные компоненты могут лежать в папке /local/components/название_компонента/
Перейдем к написанию компонента изменения пароля битикс:
на страничке смены пароля вешаем следующий код:
IncludeComponent( «test:change.pass», «.default» );?>
Разместим компонент в папке /local/components/test/, для этого создадим там необходимую структуру:
Код компонента (файл component.php)
IsAuthorized()) die(); if($_REQUEST['do']=='send')< if($_REQUEST['password']!=$_REQUEST['confirm_password']) $arResult['ERROR'] .= GetMessage('NOT_THE_SAME')."
"; if($_REQUEST['password']=='') $arResult['ERROR'] = GetMessage('PASSWORD_EMPTY')."
"; if($_REQUEST['confirm_password']=='') $arResult['ERROR'] = GetMessage('CONFIRM_PASSWORD_EMPTY')."
"; $arAuthResult = $USER->Login($USER->GetLogin(), $_REQUEST['old_password'], "Y"); if($arAuthResult['TYPE']=='ERROR') $arResult['ERROR'] .= GetMessage('PASSWORD_WRONG')."
"; if($arResult['ERROR']=='')< $ID = intval($USER->GetID()); $salt = randString(8); $checkword = md5(CMain::GetServerUniqID().uniqid()); $_checkword = $salt.md5($salt.$checkword); $strSql = "UPDATE b_user SET ". " CHECKWORD = '".$_checkword."', ". " CHECKWORD_TIME = ".$DB->CurrentTimeFunction().", ". " LID = '".$DB->ForSql($SITE_ID, 2)."', ". " TIMESTAMP_X = TIMESTAMP_X ". "WHERE ". " AND (EXTERNAL_AUTH_ID IS NULL OR EXTERNAL_AUTH_ID='') "; $DB->Query($strSql); if($arResult['ERROR']=='')< $res = $USER->ChangePassword($USER->GetLogin(), $checkword, $_REQUEST['password'], $_REQUEST['confirm_password']); if($res["TYPE"] == "OK") $arResult['SUCCESS'] = 'Y'; else $arResult['ERROR'] = $res['MESSAGE']; > > > $this->IncludeComponentTemplate(); ?>
LANG-файл компонента (change.pass/lang/ru/component.php)
?>
$MESS["OLD_PASSWORD"] = "Введите старый пароль"; $MESS["NEW_PASSWORD"] = "Введите новый пароль"; $MESS["CONFIRM_NEW_PASSWORD"] = "Подтвердите новый пароль"; $MESS["NOT_THE_SAME"] = "Введенные пароли не совпдают"; $MESS["SEND"] = "Сохранить"; $MESS["SUCCESS"] = "Пароль успешно изменён";
Битрикс компонент изменения пароля при помощи метода $USER->Login($USER->GetLogin(), $_REQUEST[‘old_password’], «Y») проверяет старый пароль, если он правильный – то меняет старый на новый, при помощи кода:
$ID = intval($USER->GetID()); $salt = randString(8); $checkword = md5(CMain::GetServerUniqID().uniqid()); $_checkword = $salt.md5($salt.$checkword); $strSql = "UPDATE b_user SET ". " CHECKWORD = '".$_checkword."', ". " CHECKWORD_TIME = ".$DB->CurrentTimeFunction().", ". " LID = '".$DB->ForSql($SITE_ID, 2)."', ". " TIMESTAMP_X = TIMESTAMP_X ". "WHERE ". " AND (EXTERNAL_AUTH_ID IS NULL OR EXTERNAL_AUTH_ID='') "; $DB->Query($strSql); if($arResult['ERROR']=='')< $res = $USER->ChangePassword($USER->GetLogin(), $checkword, $_REQUEST['password'], $_REQUEST['confirm_password']);
Пользуйтесь на здоровье!
Битрикс компонент изменения пароля
- Кастомизация шаблона компонента
- Битрикс компонент обратная связь ajax
- Пагинация google в битриксе
- Соцсети битрикс
Комментарии:
2018.12.12
Дмитрий
Круто, но нет одного важного момента. Если пользователь не помнит пароль.
Оставить комментарий
Как сменить пароль Битрикс24
В правом верхнем углу нажимаем на свой профиль и выбираем пункт «Моя страница Битрикс24.Нетворк».
Нажимаем на кнопку «Редактировать профиль».
На открывшейся странице нажимаем «Сменить пароль». Вводим старый пароль, а затем дважды вводим новый. Сохраняем.
Коробочная версия
Нажимаем на свой профиль и выбираем пункт «Изменить личные данные». Выбираем «Сменить пароль», меняем и сохраняем.
Как поменять пароль администратора в Битрикс
Очень часто у наших клиентов возникает потребность изменить пароль у главного администратора сайта, например, выдавали его технической поддержке 1С-Битрикс, и нужно для безопасности его поменять.
Для того, чтобы поменять пароль, нужно в административной части сайта в левом основном меню открыть пункт «Настройки».
Затем нужно выбрать пункт «Пользователи» — «Список пользователей».
После чего нужно найти нужного пользователя, у которого требуется сменить пароль и открыть его профиль.
Затем нужно ввести два раза новый пароль и нажать кнопку «Сохранить». Всё теперь пароль пользователя или администратора сменен.
Как сменить пароль к базе данных Битрикс?
сканер безопасности в админке сайта 1c битрикс выдал критические ошибки,что слишком простой пароль,а как его изменить?
- Вопрос задан более года назад
- 632 просмотра
Комментировать
Решения вопроса 0
Ответы на вопрос 1
1. Остановить сайт штатными средствами Битрикса
2. Сменить пароль пользователя штатными средствами БД или вашей панели управления
3. Обновить этот пароль в Битриксе (в /bitrix/.settings.php)
4. Запустить сайт.
или
1. Забить на мнение Битрикса, если пароль не словарный.
Ответ написан более года назад
Roma789 @Roma789 Автор вопроса
не пойму как сменить пароль штатными средствами,если изменяю пароль в bitrix/.settings.php то сайт вообще не открывается и выдаёт ошибку
Roma789, там должен быть пароль, который сейчас актуален для указанного пользователя. Если в БД пароль не менялся — любые изменения в Битриксе приведут только к ошибке.
Roma789 @Roma789 Автор вопроса
Adamos, я сменил пароль в панель управления bitrixvm но ничего не изменилось
Roma789, пароль. пользователя. базы. данных.
Что там в панели BitrixVM — не знаю, не пользуюсь.
Погуглите обращение с ней на самом сайте Битрикса, не первый же вы выполняете эту задачу.