just register

This commit is contained in:
themohooks 2024-07-04 13:20:40 +03:00
parent 0b42a6731c
commit c69709ee79
4 changed files with 20 additions and 9 deletions

View file

@ -36,8 +36,8 @@ class Register
$username = $_POST['username']; $username = $_POST['username'];
$password = $_POST['password']; $password = $_POST['password'];
$email = $_POST['email']; $email = $_POST['email'];
if (!strcasecmp(DB::query('SELECT username FROM users WHERE (LOWER(username) LIKE :username)', array(':username' => '%' . $username . '%'))[0]['username'], $username) === false || !preg_match("#^[a-zA-Z0-9]+$#", $username)) { if (!strcasecmp(DB::query('SELECT username FROM users WHERE (LOWER(username) LIKE :username)', array(':username' => '%' . $username . '%'))[0]['username'], $username) === false || Router::checkCurl($_SERVER['HTTP_HOST'] . '/' . $username) != 200 ) {
if (Word::strlen(ltrim($username)) >= 5 && Word::strlen(ltrim($username)) <= 20 && Router::checkCurl($_SERVER['HTTP_HOST'] . '/' . $username) != 200) { if (Word::strlen(ltrim($username)) >= 5 && Word::strlen(ltrim($username)) <= 20 && !preg_match("#^[a-zA-Z0-9]+$#", $username)) {
if (Word::strlen(ltrim($password)) >= 5 && Word::strlen(ltrim($password)) <= 120) { if (Word::strlen(ltrim($password)) >= 5 && Word::strlen(ltrim($password)) <= 120) {
@ -106,6 +106,7 @@ class Register
echo json_encode( echo json_encode(
array( array(
'errorcode' => '2', 'errorcode' => '2',
'errortitle' => 'Пользователь с такой почтой уже существует!',
'error' => 1 'error' => 1
) )
); );
@ -115,6 +116,7 @@ class Register
echo json_encode( echo json_encode(
array( array(
'errorcode' => '3', 'errorcode' => '3',
'errortitle' => 'Почта некорректного формата!',
'error' => 1 'error' => 1
) )
); );
@ -123,6 +125,7 @@ class Register
echo json_encode( echo json_encode(
array( array(
'errorcode' => '4', 'errorcode' => '4',
'errortitle' => 'Пароль меньше 5 символов!',
'error' => 1 'error' => 1
) )
); );
@ -131,6 +134,7 @@ class Register
echo json_encode( echo json_encode(
array( array(
'errorcode' => '5', 'errorcode' => '5',
'errortitle' => 'Никнейм некорректный!',
'error' => 1 'error' => 1
) )
); );
@ -139,6 +143,7 @@ class Register
echo json_encode( echo json_encode(
array( array(
'errorcode' => '6', 'errorcode' => '6',
'errortitle' => 'Никнейм уже существует!!',
'error' => 1 'error' => 1
) )
); );

View file

@ -4,7 +4,7 @@ namespace App\Controllers;
use \App\Services\{Router, Auth, DB, Json}; use \App\Services\{Router, Auth, DB, Json};
use \App\Controllers\ExceptionRegister; use \App\Controllers\ExceptionRegister;
use \App\Core\Page; use \App\Core\Page;
use \App\Controllers\Api\Login; use \App\Controllers\Api\{Login, Register};
class ApiController class ApiController
{ {
@ -12,5 +12,8 @@ class ApiController
public static function login() { public static function login() {
return new Login(); return new Login();
} }
public static function register() {
return new Register();
}
} }

View file

@ -16,7 +16,7 @@ class Routes
Router::get('/register', 'RegisterController@i'); Router::get('/register', 'RegisterController@i');
Router::get('/photo/$id', 'PhotoController@i'); Router::get('/photo/$id', 'PhotoController@i');
Router::post('/api/login', 'ApiController@login'); Router::post('/api/login', 'ApiController@login');
Router::post('/api/register', 'ApiController@register');

View file

@ -56,18 +56,21 @@
if (!email.match(/^[0-9a-z_\-.]+@[0-9a-z_\-^.]+\.[a-z]{2,4}$/i)) err_email.html('Некорректный адрес'); if (!email.match(/^[0-9a-z_\-.]+@[0-9a-z_\-^.]+\.[a-z]{2,4}$/i)) err_email.html('Некорректный адрес');
if (err_email.html() == '' && captchaPassed) { if (err_email.html() == '') {
$(this).prop('disabled', true).val('Отправка данных...'); $(this).prop('disabled', true).val('Отправка данных...');
$.get('/api/register', { $.post('/api/register', {
username: username, username: username,
email: email, email: email,
password: password password: password
}, function(r) { }, function(r) {
if (r != 0) { r = JSON.parse(r);
$('#err_email').html(r == 1 ? 'Пользователь с таким e-mail уже зарегистрирован' : 'На этот адрес уже было отправлено письмо со ссылкой для подтверждения.<br /><br />Проверьте, не попало ли оно в папку "Спам"!'); if (r.errorcode > 0) {
$('#err_email').html(r.errortitle);
$('#regbtn').prop('disabled', false).val('Зарегистрироваться'); $('#regbtn').prop('disabled', false).val('Зарегистрироваться');
} else $('#form').submit(); } else {
window.location.href = "/"
}
}) })
.fail(function(jx) { .fail(function(jx) {
if (jx.responseText != '') alert(jx.responseText); if (jx.responseText != '') alert(jx.responseText);