Hi! Could we please enable some services and cookies to improve your experience and our website?

PHPize Online / SQLize Online  /  SQLtest Online

A A A
Login    Share code      Blog   FAQ

Online Sandbox for SQL and PHP: Write, Run, Test, and Share SQL Queries and PHP Code

Copy Format Clear
CREATE DATABASE IF NOT EXISTS user_auth; USE user_auth; CREATE TABLE IF NOT EXISTS users ( id INT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(50) NOT NULL UNIQUE, email VARCHAR(100) NOT NULL UNIQUE, password VARCHAR(255) NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); -- Создаем пользователя для доступа к базе (замените 'your_password' на свой пароль) CREATE USER 'auth_user'@'localhost' IDENTIFIED BY '123123'; GRANT ALL PRIVILEGES ON user_auth.* TO 'auth_user'@'localhost'; FLUSH PRIVILEGES;

Stuck with a problem? Got Error? Ask AI support!

Copy Clear
Copy Format Clear
<?php require 'config.php'; $errors = []; $username = ''; $email = ''; if ($_SERVER['REQUEST_METHOD'] === 'POST') { $username = trim($_POST['username']); $email = trim($_POST['email']); $password = trim($_POST['password']); $confirm_password = trim($_POST['confirm_password']); // Валидация if (empty($username)) { $errors['username'] = 'Имя пользователя обязательно'; } elseif (strlen($username) < 3) { $errors['username'] = 'Имя пользователя должно быть не менее 3 символов'; } if (empty($email)) { $errors['email'] = 'Email обязателен'; } elseif (!filter_var($email, FILTER_VALIDATE_EMAIL)) { $errors['email'] = 'Некорректный email'; } if (empty($password)) { $errors['password'] = 'Пароль обязателен'; } elseif (strlen($password) < 6) { $errors['password'] = 'Пароль должен быть не менее 6 символов'; } if ($password !== $confirm_password) { $errors['confirm_password'] = 'Пароли не совпадают'; } // Проверка уникальности username и email if (empty($errors)) { $stmt = $pdo->prepare("SELECT id FROM users WHERE username = ? OR email = ?"); $stmt->execute([$username, $email]); if ($stmt->fetch()) { $errors['general'] = 'Пользователь с таким именем или email уже существует'; } } // Регистрация пользователя if (empty($errors)) { $hashed_password = password_hash($password, PASSWORD_DEFAULT); $stmt = $pdo->prepare("INSERT INTO users (username, email, password) VALUES (?, ?, ?)"); if ($stmt->execute([$username, $email, $hashed_password])) { $_SESSION['message'] = 'Регистрация прошла успешно! Теперь вы можете войти.'; redirect('login.php'); } else { $errors['general'] = 'Ошибка при регистрации. Попробуйте позже.'; } } } ?> <!DOCTYPE html> <html lang="ru"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Регистрация</title> <style> body { font-family: Arial, sans-serif; max-width: 400px; margin: 0 auto; padding: 20px; } .alert { padding: 10px; margin-bottom: 15px; border-radius: 4px; } .alert.error { background-color: #ffdddd; color: #d8000c; } .alert.success { background-color: #ddffdd; color: #4F8A10; } .form-group { margin-bottom: 15px; } label { display: block; margin-bottom: 5px; } input { width: 100%; padding: 8px; box-sizing: border-box; border: 1px solid #ddd; border-radius: 4px; } .error-text { color: #d8000c; font-size: 0.8em; margin-top: 5px; } button { background: #4CAF50; color: white; padding: 10px 15px; border: none; border-radius: 4px; cursor: pointer; } button:hover { background: #45a049; } .login-link { margin-top: 15px; text-align: center; } </style> </head> <body> <h2>Регистрация</h2> <?php if (!empty($errors['general'])): ?> <div class="alert error"><?= $errors['general'] ?></div> <?php endif; ?> <form method="post" action="register.php"> <div class="form-group"> <label for="username">Имя пользователя:</label> <input type="text" name="username" id="username" value="<?= htmlspecialchars($username) ?>" required> <?php if (!empty($errors['username'])): ?> <div class="error-text"><?= $errors['username'] ?></div> <?php endif; ?> </div> <div class="form-group"> <label for="email">Email:</label> <input type="email" name="email" id="email" value="<?= htmlspecialchars($email) ?>" required> <?php if (!empty($errors['email'])): ?> <div class="error-text"><?= $errors['email'] ?></div> <?php endif; ?> </div> <div class="form-group"> <label for="password">Пароль:</label> <input type="password" name="password" id="password" required> <?php if (!empty($errors['password'])): ?> <div class="error-text"><?= $errors['password'] ?></div> <?php endif; ?> </div> <div class="form-group"> <label for="confirm_password">Подтвердите пароль:</label> <input type="password" name="confirm_password" id="confirm_password" required> <?php if (!empty($errors['confirm_password'])): ?> <div class="error-text"><?= $errors['confirm_password'] ?></div> <?php endif; ?> </div> <button type="submit">Зарегистрироваться</button> </form> <div class="login-link"> Уже есть аккаунт? <a href="login.php">Войти</a> </div> </body> </html>
Copy Clear