PDO::ERRMODE_EXCEPTION] ); $stmt = $pdo->prepare("SELECT COUNT(*) FROM registrations WHERE created_at > DATE_SUB(NOW(), INTERVAL 1 HOUR)"); $stmt->execute(); $recent_registrations = $stmt->fetchColumn(); if ($recent_registrations >= 3) { $error = "Слишком много регистраций за последний час. Попробуйте позже."; } else { $stmt = $pdo->prepare("SELECT COUNT(*) FROM users WHERE username = ?"); $stmt->execute([$username]); if ($stmt->fetchColumn() > 0) { $error = "Пользователь с таким именем уже существует"; } else { $hashed_password = password_hash($password, PASSWORD_DEFAULT); $stmt = $pdo->prepare("INSERT INTO users (username, password, pgp_key) VALUES (?, ?, ?)"); $stmt->execute([$username, $hashed_password, $pgp_key]); $stmt = $pdo->prepare("INSERT INTO registrations (created_at) VALUES (NOW())"); $stmt->execute(); $success = "Регистрация успешна! Теперь вы можете войти."; } } } catch (PDOException $e) { $error = "Ошибка сервера"; } } ?>
Уже есть аккаунт? Войти