function registrationAction() { $v_params['logined'] = LoginChecker::isLogined(); $v_params['sys_name'] = SysPropertiesUtil::getPropertyValue("sys_name"); $v_params['sys_slog'] = SysPropertiesUtil::getPropertyValue("sys_slog"); $v_params['reg']['main'] = TRUE; if (0 < count($_POST)) { // Передача формы $containErrors = FALSE; if (isset($_POST['email'])) { $email = $_POST['email']; if (0 == strcmp("", $email)) { $v_params['errors'][] = "Email не может быть пустым"; $containErrors = TRUE; } else { if (!preg_match("/^[^0-9][A-z0-9_]+([.][A-z0-9_]+)*[@][A-z0-9_]+([.][A-z0-9_]+)*[.][A-z]{2,4}\$/", $email)) { $v_params['errors'][] = "Скорее всего вы ввели email не правильно"; $containErrors = TRUE; } else { $imgAccount = ImgAccountUtil::getImgAccountByEmail($email); if ($imgAccount) { $v_params['errors'][] = "Такой Email уже зарегистрирован"; $containErrors = TRUE; } } } } if (isset($_POST['password1'])) { $password1 = $_POST['password1']; if ("" == $password1) { $v_params['errors'][] = "Пароль не может быть пустым <br/>"; $containErrors = TRUE; } else { if (9 > strlen($password1)) { $v_params['errors'][] = "Длина пароля должна быть от 9 символов"; $containErrors = TRUE; } } } if (0 != strcmp($_POST['password1'], $_POST['password2'])) { $v_params['errors'][] = "Пароль и его подтверждение не совпадают"; $containErrors = TRUE; } if (isset($_POST['name'])) { $name = $_POST['name']; if ("" == $name) { $v_params['errors'][] = "Введите название торгового стенда (позднее вы сможете его изменить)"; $containErrors = TRUE; } } $resp = recaptcha_check_answer(RECAPCHA_PRIVATE_KEY, $_SERVER["REMOTE_ADDR"], $_POST["recaptcha_challenge_field"], $_POST["recaptcha_response_field"]); if (!$resp->is_valid) { $v_params['errors'][] = "Защита от роботов введена не верно"; $containErrors = TRUE; } // Обработка if ($containErrors) { // Есть ошибки $v_params['addr_regions'] = AddrRegionUtil::getRegions(); Application::fastView('main/sys_registration', $v_params); } else { // Нет ошибок, создаем аккаунт $imgAccount['email'] = $_POST['email']; $imgAccount['hashpass'] = Hasher::getHash($_POST['password1']); $imgAccount['show_email'] = 0; $imgAccount['active'] = 0; $imgAccount['img_name'] = $_POST['name']; $imgAccount['img_slog'] = $_POST['slog']; if (isset($_POST['region']) && "" != $_POST['region']) { $addrRegion = AddrRegionUtil::getRegionByCode($_POST['region']); $imgAddress['region_id'] = $addrRegion['id']; } $imgAddressId = ImgAddressUtil::insertImgAddress($imgAddress); $imgAccount['img_address_id'] = $imgAddressId; $imgAccount['show_address'] = 1; $activation_code = UUIDGenerator::generate(); $imgAccount['check_code'] = $activation_code; $imgAccountId = ImgAccountUtil::createImgAccount($imgAccount); $mail_values['__root_url__'] = "http://" . $_SERVER["HTTP_HOST"]; $mail_values['__act_url__'] = "http://" . $_SERVER["HTTP_HOST"] . "/activation?imgID=" . $imgAccountId . "&acode=" . $activation_code; MailWork::sendMailByTemplate($imgAccount['email'], "Завершение регистрации на сайте " . $_SERVER["HTTP_HOST"], "end_reg.html", $mail_values); $v_params['message'] = "На указаный email выслано письмо с подтверждением регистрации"; $v_params['message_descr'] = "Проверьте свой почтовый ящик, там будет письмо с сылкой для активации созданного аккаунта, после чего вы сможете работать со своим торговым стендом"; Application::fastView('main/sys_message', $v_params); } } else { $v_params['addr_regions'] = AddrRegionUtil::getRegions(); Application::fastView('main/sys_registration', $v_params); } }