Добрый вечер! Переделываю компонент sale.order.full, переписал этап авторизации/регистрации (файд auth.php http://myscreenshot.info/i/0003/131351395984569502327472447043.png ) при регистрации выдаёт ошибки. По просьбе клиента я максимально упростил процесс регистрации и аутентификации в этом файле, тупо добавил 2 формы по 2 поля email и пароль (при регистрации email выступает и в качестве логина и email-ом одновременно), выглядит всё вот так: http://myscreenshot.info/i/0003/214901395984725566562911258354.png т.е. при выборе чекбокса "Я новый клиент" видна форма регистрации, при выборе чекбокса "Я уже покупал товар на этом сайте" плавно открывается форма аутентификации http://myscreenshot.info/i/0003/518661395984855190891373897950.png . Код файла auth.php выглядит так:
сами формы:
и сам обработчик (тут же в этом файле) :
всё довольно примитивно (я бы даже сказал быдлокод), но всё работало, а потом (я не понял после каких изменений) при попытке регистрации стали вылетать ошибки такого рода http://myscreenshot.info/i/0003/381221395985272504258916726828.png будто бы там остался прежний алгоритм (компонент). Почему могут вылетать такие ошибки? Я ведь заполняю все минимально необходимые для регистрации нового пользователя поля (из документации http://dev.1c-bitrix.ru/api_help/main/reference/cuser/add.php список обязательных полей http://myscreenshot.info/i/0003/418871395985491056394175971055.png ).
Вобщем i need help!
сами формы:
Код |
---|
<div class="regist-auth" > <br/> <div class="checkbox-cont chek" id="i-am-new-user" ><input type="checkbox" name="type-user" checked="checked" ></div><label>Я новый клиент</label><br/> <div class="clearboth" ></div> <br/> <div class="i-am-new-user" > <form id="auth-or-reg" name="auth-or-reg" method="post" action="<?=$APPLICATION->GetCurPage();?>" > <table class="new-user" > <tr> <td><label><span class="requerd" >*</span>E-mail:</label></td> <td><input type="text" name="user-order-email" ></td> </tr> <tr> <td><label><span class="requerd" >*</span>Пароль:</label></td> <td><input type="password" name="user-order-password" ></td> </tr> <tr> <td class="checkbox-td" colspan="2" > <div class="checkbox-container chek" id="chek-reg" style="background-position: 0px -20px;" ><input type="checkbox" checked="checked" > </div> <label>Я ознакомлен с <a href="#" >соглашением на обработку персональных данных</a></label> </td> </tr> <tr> <td colspan="2"> <br/> <input id="do_register" type="submit" value="<?echo GetMessage("STOF_NEXT_STEP")?>"> <input type="hidden" name="do_register" value="Y"> </td> </tr> </table> </form> </div> <br/> <div class="checkbox-cont" id="i-am-old-user" ><input type="checkbox" name="type-user" ></div><label>Я уже покупал товар на этом сайте</label> <div class="clearboth" ></div> <br/> <div class="i-am-old-user" > <form class="auth-form" method="post" action="<?=$APPLICATION->GetCurPage();?>"> <table class="login-user" > <tr> <td><label>E-mail:</label></td> <td><input type="text" name="user-order-email" ></td> </tr> <tr> <td><label>Пароль:</label></td> <td><input type="password" name="user-order-password" ></td> </tr> <tr> <td colspan="2"> <br/> <input type="submit" value="<?echo GetMessage("STOF_NEXT_STEP")?>"> <input type="hidden" name="do_login" value="Y"> </td> </tr> </table> </form> </div> </div> |
Код |
---|
<? if((isset($_POST['user-order-email'])&&$_POST['user-order-email']!='')&&(isset($_POST['user-order-phone'])&&$_POST['user-order-phone']!='')&&(isset($_POST['user-order-password'])&&($_POST['user-order-password']!=''))&&($_POST['do_register']=='Y')) { //Регистрируем нового пользователя $user = new CUser; $arFields = Array( "NAME" => '...', "LAST_NAME" => '...', "EMAIL" => $_POST['user-order-email'], //e-mail пользователя выступает как e-mail и как логин одновременно "LOGIN" => $_POST['user-order-email'], "LID" => "ru", "ACTIVE" => "Y", "GROUP_ID" => array(2,3), //Все пользователи и зарегистрированные пользователи "PASSWORD" => $_POST['user-order-password'], "CONFIRM_PASSWORD" => $_POST['user-order-password'], ); $ID = $user->Add($arFields); if (intval($ID) > 0) { $USER->Authorize($ID,true); // авторизуем LocalRedirect($APPLICATION->GetCurPage()); //Делаем редирект на эту же страницу чтобы продолжить оформление заказа } else { echo $user->LAST_ERROR; } } elseif ((isset($_POST['user-order-email'])&&$_POST['user-order-email']!='')&&(isset($_POST['user-order-password'])&&($_POST['user-order-password']!=''))&&($_POST['do_login']=='Y')) { //Авторизуем пользователя global $USER; if (!is_object($USER)) $USER = new CUser; $arAuthResult = $USER->Login($_POST['user-order-email'], $_POST['user-order-password'], "Y"); $APPLICATION->arAuthResult = $arAuthResult; LocalRedirect($APPLICATION->GetCurPage()); //Делаем редирект на эту же страницу чтобы продолжить оформление заказа } ?> |
Вобщем i need help!
Всё сбудется, стоит только расхотеть...