Example #1
0
function actionRegister()
{
    $arrResult = [];
    session_unset();
    setcookie('user', '', time() - 3600, '/');
    setcookie('token', '', time() - 3600, '/');
    setcookie('lastSessionTime', '', time() - 3600, '/');
    setcookie('lastSessionIp', '', time() - 3600, '/');
    if (!empty($_GET['user']) && !empty($_GET['email']) && !empty($_GET['password'])) {
        $sql = 'SELECT * FROM users WHERE username = :username';
        $db = new Db();
        $select = $db->dbSelect($sql, [':username' => $_GET['user']])[0];
        switch (true) {
            case !empty($select):
                $arrResult['result'] = false;
                $arrResult['message'] = 'Пользователь уже зарегистрирован';
                break;
            case preg_match('~\\s~', $_GET['user'], $m) === 1 || preg_match('~\\s~', $_GET['password'], $m) === 1:
                $arrResult['result'] = false;
                $arrResult['message'] = 'Использование пробелов не допускается';
                break;
            default:
                $time = date('d.m.y  H:i:s');
                $sql = 'INSERT INTO `users` (`username`, `email`, `password`, `lastSessionTime`, `lastSessionIp`)
                VALUES (:username, :email, :password, :lastSessionTime, :lastSessionIp)';
                $insert = $db->dbExecute($sql, [':username' => $_GET['user'], ':email' => $_GET['email'], ':password' => $_GET['password'], ':lastSessionTime' => $time, ':lastSessionIp' => $_SERVER['REMOTE_ADDR']]);
                if ($insert) {
                    $arrResult['result'] = true;
                    $arrResult['message'] = 'Вы успешно зарегистрированы';
                    Application::setCookies($_GET['user']);
                } else {
                    $arrResult['result'] = false;
                    $arrResult['message'] = 'Ошибка регистрации';
                }
                break;
        }
    } else {
        $arrResult['result'] = false;
        $arrResult['message'] = 'Не все поля заполнены';
    }
    echo json_encode($arrResult, JSON_UNESCAPED_UNICODE);
}