Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- if (isset($_POST['fullname']) && isset($_POST['email']) && isset($_POST['password'])) {
- $login = $_POST["fullname"];
- $mail = $_POST["email"];
- $pass = $_POST["password"];
- } else {
- echo 'Куда ты лезешь, она тебя сожрет!';
- return;
- }
- header('Content-Type: application/json');
- // Проверка на пустоту логина
- if (!isset($login) || $login === "") {
- $data = array('message' => 'Не введен логин!');
- echo json_encode($data);
- return;
- }
- // Проверка на длину логина
- if (strlen($login) < 4) {
- $data = array('message' => 'Логин не может быть короче 4х символов!');
- echo json_encode($data);
- return;
- }
- // Проверка на пустоту почты
- if (!isset($mail) || $mail === "") {
- $data = array('message' => 'Не введен адрес почты!');
- echo json_encode($data);
- return;
- }
- // Проверка на валидность почты
- if (!filter_var($mail, FILTER_VALIDATE_EMAIL)) {
- $data = array('message' => 'Адрес почты введен неверно!');
- echo json_encode($data);
- return;
- }
- // Проверка на пустоту пароля
- if (!isset($pass) || $pass === "") {
- $data = array('message' => 'Не введен пароль!');
- echo json_encode($data);
- return;
- }
- // Прочие проверки на секурность пароля
- if (strlen($pass) < 6) {
- $data = array('message' => 'Пароль не может быть короче 6 символов!');
- echo json_encode($data);
- return;
- }
- if (!preg_match("#[0-9]+#", $pass)) {
- $data = array('message' => 'Пароль должен содержать не менее одной цифры!');
- echo json_encode($data);
- return;
- }
- if (!preg_match("#[a-zA-Z]+#", $pass)) {
- $data = array('message' => 'Пароль должен содержать не менее одной буквы!');
- echo json_encode($data);
- return;
- }
- if (!preg_match("/^[a-zA-Z0-9_-]+$/", $login)) {
- $data = array('message' => 'Логин может содержать только латинские символы и символ _');
- echo json_encode($data);
- return;
- }
- if (!preg_match("#[a-zA-Z]+#", $login)) {
- $data = array('message' => 'Логин должен содержать не менее одной буквы!');
- echo json_encode($data);
- return;
- }
- // Проверка на вайтлист email
- // Логика
- $communityUrl = 'https://forum.fwld.ru/';
- $apiKey = '1117a3f1523a99d32738f8bd97a785c7';
- $curl = curl_init( $communityUrl . 'api/core/members' );
- curl_setopt_array( $curl, array(
- CURLOPT_RETURNTRANSFER => TRUE,
- CURLOPT_HTTPAUTH => CURLAUTH_BASIC,
- CURLOPT_USERPWD => "{$apiKey}:",
- CURLOPT_POSTFIELDS => "name={$login}&email={$mail}&password={$pass}"
- ) );
- $response = curl_exec( $curl );
- $response = json_decode($response);
- if ($response->errorMessage) {
- if ($response->errorMessage === 'USERNAME_EXISTS') {
- $data = array('message' => 'Пользователь с таким логином уже существует!');
- echo json_encode($data);
- return;
- }
- if ($response->errorMessage === 'EMAIL_EXISTS') {
- $data = array('message' => 'Пользователь с таким email уже существует!');
- echo json_encode($data);
- return;
- }
- $data = array('message' => 'Что-то пошло не так! А именно: ' . $response->errorMessage);
- echo json_encode($data);
- return;
- } else {
- $key = '1117a3f1523a99d32738f8bd97a785c7';
- $delimiter = ':';
- $algo = 'sha512';
- $url = 'https://shop.fwld.ru/api/signup?';
- $str = sprintf('%s%s%s%s%s%s%s%s%s%s%s%s%s', $key, $delimiter, $login, $delimiter, $mail, $delimiter, $pass, $delimiter, 0, $delimiter, 0, $delimiter, 0);
- $hash = hash($algo, $str);
- $paramsStr = http_build_query([
- 'username' => $login,
- 'email' => $mail,
- 'password' => $pass,
- 'balance' => 0,
- 'force_activate' => 0,
- 'admin' => 0,
- 'hash' => $hash
- ]);
- $link = $url . $paramsStr;
- if( $curl = curl_init() ) {
- curl_setopt($curl, CURLOPT_URL, $link);
- curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
- $out = curl_exec($curl);
- // echo $out;
- // Тут можно распарсить и вывести вероятные ошибки от регистрации в магазине
- // но api уебанский - долго разбираться
- curl_close($curl);
- }
- }
- // Логика
- // Завершение
- $data = array('complete' => 'Спасибо за регистрацию! На ваш e-mail должно прийти письмо со ссылкой для подтверждения регистрации. Если его там нет, проверьте папку Спам.');
- echo json_encode($data);
- return;
- ?>
Advertisement
Add Comment
Please, Sign In to add comment