Kundello

Untitled

Apr 1st, 2018
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.83 KB | None | 0 0
  1. <?php
  2. if (isset($_POST['fullname']) && isset($_POST['email']) && isset($_POST['password'])) {
  3. $login = $_POST["fullname"];
  4. $mail = $_POST["email"];
  5. $pass = $_POST["password"];
  6. } else {
  7. echo 'Куда ты лезешь, она тебя сожрет!';
  8. return;
  9. }
  10.  
  11. header('Content-Type: application/json');
  12.  
  13. // Проверка на пустоту логина
  14. if (!isset($login) || $login === "") {
  15. $data = array('message' => 'Не введен логин!');
  16. echo json_encode($data);
  17. return;
  18. }
  19.  
  20. // Проверка на длину логина
  21. if (strlen($login) < 4) {
  22. $data = array('message' => 'Логин не может быть короче 4х символов!');
  23. echo json_encode($data);
  24. return;
  25. }
  26.  
  27. // Проверка на пустоту почты
  28. if (!isset($mail) || $mail === "") {
  29. $data = array('message' => 'Не введен адрес почты!');
  30. echo json_encode($data);
  31. return;
  32. }
  33.  
  34. // Проверка на валидность почты
  35. if (!filter_var($mail, FILTER_VALIDATE_EMAIL)) {
  36. $data = array('message' => 'Адрес почты введен неверно!');
  37. echo json_encode($data);
  38. return;
  39. }
  40.  
  41. // Проверка на пустоту пароля
  42. if (!isset($pass) || $pass === "") {
  43. $data = array('message' => 'Не введен пароль!');
  44. echo json_encode($data);
  45. return;
  46. }
  47.  
  48. // Прочие проверки на секурность пароля
  49. if (strlen($pass) < 6) {
  50. $data = array('message' => 'Пароль не может быть короче 6 символов!');
  51. echo json_encode($data);
  52. return;
  53. }
  54.  
  55. if (!preg_match("#[0-9]+#", $pass)) {
  56. $data = array('message' => 'Пароль должен содержать не менее одной цифры!');
  57. echo json_encode($data);
  58. return;
  59. }
  60.  
  61. if (!preg_match("#[a-zA-Z]+#", $pass)) {
  62. $data = array('message' => 'Пароль должен содержать не менее одной буквы!');
  63. echo json_encode($data);
  64. return;
  65. }
  66. if (!preg_match("/^[a-zA-Z0-9_-]+$/", $login)) {
  67. $data = array('message' => 'Логин может содержать только латинские символы и символ _');
  68. echo json_encode($data);
  69. return;
  70. }
  71. if (!preg_match("#[a-zA-Z]+#", $login)) {
  72. $data = array('message' => 'Логин должен содержать не менее одной буквы!');
  73. echo json_encode($data);
  74. return;
  75. }
  76.  
  77. // Проверка на вайтлист email
  78.  
  79.  
  80.  
  81.  
  82. // Логика
  83. $communityUrl = 'https://forum.fwld.ru/';
  84. $apiKey = '1117a3f1523a99d32738f8bd97a785c7';
  85.  
  86. $curl = curl_init( $communityUrl . 'api/core/members' );
  87. curl_setopt_array( $curl, array(
  88. CURLOPT_RETURNTRANSFER => TRUE,
  89. CURLOPT_HTTPAUTH => CURLAUTH_BASIC,
  90. CURLOPT_USERPWD => "{$apiKey}:",
  91. CURLOPT_POSTFIELDS => "name={$login}&email={$mail}&password={$pass}"
  92. ) );
  93.  
  94. $response = curl_exec( $curl );
  95. $response = json_decode($response);
  96.  
  97. if ($response->errorMessage) {
  98. if ($response->errorMessage === 'USERNAME_EXISTS') {
  99. $data = array('message' => 'Пользователь с таким логином уже существует!');
  100. echo json_encode($data);
  101. return;
  102. }
  103.  
  104. if ($response->errorMessage === 'EMAIL_EXISTS') {
  105. $data = array('message' => 'Пользователь с таким email уже существует!');
  106. echo json_encode($data);
  107. return;
  108. }
  109.  
  110. $data = array('message' => 'Что-то пошло не так! А именно: ' . $response->errorMessage);
  111. echo json_encode($data);
  112. return;
  113.  
  114. } else {
  115. $key = '1117a3f1523a99d32738f8bd97a785c7';
  116. $delimiter = ':';
  117. $algo = 'sha512';
  118. $url = 'https://shop.fwld.ru/api/signup?';
  119.  
  120. $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);
  121. $hash = hash($algo, $str);
  122. $paramsStr = http_build_query([
  123. 'username' => $login,
  124. 'email' => $mail,
  125. 'password' => $pass,
  126. 'balance' => 0,
  127. 'force_activate' => 0,
  128. 'admin' => 0,
  129. 'hash' => $hash
  130. ]);
  131.  
  132. $link = $url . $paramsStr;
  133.  
  134. if( $curl = curl_init() ) {
  135. curl_setopt($curl, CURLOPT_URL, $link);
  136. curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
  137. $out = curl_exec($curl);
  138. // echo $out;
  139. // Тут можно распарсить и вывести вероятные ошибки от регистрации в магазине
  140. // но api уебанский - долго разбираться
  141. curl_close($curl);
  142. }
  143. }
  144. // Логика
  145.  
  146.  
  147.  
  148. // Завершение
  149. $data = array('complete' => 'Спасибо за регистрацию! На ваш e-mail должно прийти письмо со ссылкой для подтверждения регистрации. Если его там нет, проверьте папку Спам.');
  150. echo json_encode($data);
  151. return;
  152. ?>
Advertisement
Add Comment
Please, Sign In to add comment