Стояла задача сделать регистрацию пользователя после заполнения формы и определить его в группу пользователей.
Форму я создал с помощью модуля веб формы создал в нем 5 полей

Далее вывел форму на странице и назначил страницу подтверждения отправки сообщения от пользователя назвал ее obrab.php .

На этой странице я вывел такой код obrab.php .
/* We receive id forms */
$resultid = $_REQUEST["RESULT_ID"];
if($resultid):
/* We connect the module of forms and results of answers */
CModule::IncludeModule("form");
$arAnswer = CFormResult::GetDataByID($resultid, array("SIMPLE_QUESTION_718", "SIMPLE_QUESTION_372", "SIMPLE_QUESTION_926") );
$usermail = $arAnswer['SIMPLE_QUESTION_718']['0']['USER_TEXT'];
$username = $arAnswer['SIMPLE_QUESTION_372']['0']['USER_TEXT'];
$userphone = $arAnswer['SIMPLE_QUESTION_926']['0']['USER_TEXT'];
/* We make a file for creation of the new user and we create it */
$user = new CUser;
$arFields = Array(
"NAME" => $username,
"EMAIL" => $usermail,
"LOGIN" => $usermail,
"LID" => "ru",
"ACTIVE" => "Y",
"GROUP_ID" => array(7),
"PASSWORD" => "123456",
"CONFIRM_PASSWORD" => "123456",
"PERSONAL_PHONE" => $userphone
);
$user->Add($arFields);
endif;
Судя из кода видно что :
1)вначале я словил переменую с результатами формы $resultid = $_REQUEST["RESULT_ID"];
2)Далее я подключил модуль классы для работы с формами , сделал выборку необходимых мне полей "SIMPLE_QUESTION_718", "SIMPLE_QUESTION_372", "SIMPLE_QUESTION_926" с помощью CFormResult::GetDataByID
3) Далее я создал массив для нового пользователя и с помощью CUser::Add создал его в базе . Параметр "GROUP_ID" отвечает за определение пользователя в какую либо группу, его логином будет его почта.
Собственно все, благодаря таким не сложным махинациям мы сделали регистрацию пользователя после заполнения им формы .
Опубликовано: 6 августа 2011
|
|
|