/** * Регистрация через API мобильного приложения. Начало. * * @param array $aParams массив входящих данных * @return bool true - успех, false - провал */ public function actionRegistrationMobile($aParams = array()) { require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/sbr_meta.php'; $this->setFieldInfo('role', __paramValue('int', $aParams['role'])); $this->setFieldInfo('login', trim(__paramValue('string', $aParams['username']))); $this->setFieldInfo('email', trim(__paramValue('string', $aParams['email']))); $this->setFieldInfo('phone', trim(preg_replace("#[\\D]#", "", __paramValue('string', $aParams['phone'])))); $this->setFieldInfo('password', stripslashes($aParams['password'])); $this->checkedFields(true); if (!$this->role) { $this->error['role'] = 'Не указан параметр - Роль пользователя'; $this->errno['role'] = 1; } elseif ($this->role > 2) { $this->error['role'] = 'Ошибочный параметр - Роль пользователя'; $this->errno['role'] = 2; } if ((is_release() || $this->phone != 71111112222) && sbr_meta::findSafetyPhone($this->phone, $this->role == 2 ? 'emp' : 'frl')) { $this->error['phone'] = 'Пользователь с таким номером уже зарегистрирован'; $this->errno['phone'] = 3; } if (empty($this->error)) { $_SESSION['api_reg_role'] = $this->role; $_SESSION['api_reg_login'] = substr($this->login, 0, 15); $_SESSION['api_reg_email'] = substr($this->email, 0, 64); $_SESSION['api_reg_passwd'] = substr($this->password, 0, 24); $_SESSION['api_reg_phone'] = $this->phone; // отправляем смс для подтверждения телефона $_SESSION['send_sms_time'] = 0; $_SESSION['regform_captcha_entered'] = true; $nCode = $this->actionSendSms(false, true); } return empty($this->error) && !empty($nCode); }
function RemindByPhone($phone, $rnd, $captchanum) { session_start(); $objResponse = new xajaxResponse(); $captcha = new captcha($captchanum); if (!$captcha->checkNumber(trim($rnd))) { $error = 'Вы ввели неверную комбинацию букв'; $captcha->setNumber(); $objResponse->assign('image_rnd2', 'src', '/image.php?num=' . $captchanum . '&t=' . time()); $objResponse->assign('remind_phone_error', 'innerHTML', $error); $objResponse->assign('remind_rnd2', 'value', ''); $objResponse->script("\$('remind_button_phone').removeClass('b-button_rectangle_color_disable');\n \$('remind_phone_msg').removeClass('b-layout__txt_hide'); \n "); } else { $phone = trim($phone); $i_phone = users::CheckSafetyPhone($phone); if ($i_phone['error_flag'] || trim($phone) == '') { $captcha->setNumber(); $objResponse->assign('remind_phone_error', 'innerHTML', 'Вы ввели телефон в недопустимом формате'); $objResponse->assign('image_rnd2', 'src', '/image.php?num=2&t=' . time()); $objResponse->assign('remind_rnd2', 'value', ''); $objResponse->assign('remind_phone', 'value', $phone); $objResponse->script("\$('remind_button_phone').removeClass('b-button_rectangle_color_disable');\n \$('remind_phone_msg').removeClass('b-layout__txt_hide'); \n "); } else { require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/sms_gate_a1.php'; require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/sbr_meta.php'; require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/users.php'; $safety = sbr_meta::findSafetyPhone($phone); if ($safety['safety_only_phone'] == 'f' || empty($safety)) { $error = 'Этот номер телефона не связан ни с одним аккаунтом. Попробуйте восстановить доступ через <a class="b-layout__link b-layout__link_bordbot_dot_0f71c8" href="#">логин или email</a>'; $captcha->setNumber(); $objResponse->assign('remind_phone_error', 'innerHTML', $error); $objResponse->assign('image_rnd2', 'src', '/image.php?num=' . $captchanum . '&t=' . time()); $objResponse->assign('remind_rnd2', 'value', ''); $objResponse->assign('remind_phone', 'value', $phone); $objResponse->script("\$('remind_button_phone').removeClass('b-button_rectangle_color_disable');\n \$('remind_phone_msg').removeClass('b-layout__txt_hide'); \n "); } else { $passwd = users::ResetPasswordSMS($safety['uid'], $phone); $sms_gate = new sms_gate_a1($phone); $sms_gate->sendSMS($sms_gate->getTextMessage(sms_gate::TYPE_PASS, $passwd)); if ($sms_gate->getHTTPCode() == 200) { $html = '<span class="b-icon b-icon_sbr_gattent"></span>На указанный вами номер выслан новый пароль для входа в систему.'; if (SMS_GATE_DEBUG) { $html .= ' <strong style="color:red">(DEBUG TEST: ' . $passwd . ')</strong>'; } $objResponse->script("\$('remind_button_phone').removeClass('b-button_rectangle_color_disable');\n \$('remind_phone_msg').addClass('b-layout__txt_hide');\n var e = new Element('div', {html: '{$html}', class: 'b-layout__txt b-layout__txt_padtop_15'});\n \$('sms_remind').getElement('table').destroy();\n \$('sms_remind').getElement('h3').grab(e, 'after');\n "); } else { $error = 'Ошибка отправки СМС на указанный номер'; $captcha->setNumber(); $objResponse->assign('remind_phone_error', 'innerHTML', $error); $objResponse->assign('image_rnd2', 'src', '/image.php?num=' . $captchanum . '&t=' . time()); $objResponse->assign('remind_rnd2', 'value', ''); $objResponse->assign('remind_phone', 'value', $phone); $objResponse->script("\$('remind_button_phone').removeClass('b-button_rectangle_color_disable');\n \$('remind_phone_msg').removeClass('b-layout__txt_hide'); \n "); } } } } return $objResponse; }