Я попытался сделать функцию регистрации на сайте с добавлением в базу данных, все ок, получилось. Но есть одно но. После нажатия кнопки регистрации мне выдает то, что сайт недоступен. Как фиксить - не пойму. Валидировал код - ошибок нет. Работаю на Beget(код ниже).
<?php
$db_host = 'localhost';
$db_user = 'kztakumi_admin';
$db_name = 'kztakumi_admin';
$db_password = 'Base_5';
$charset = 'utf8mb4';
$db_dsn = "mysql:host=$db_host;dbname=$db_name;charset=$charset";
$db_opt = [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
PDO::ATTR_EMULATE_PREPARES => false,
];
try {
$db_pdo = new PDO($db_dsn, $db_user, $db_password, $db_opt);
} catch (PDOException $e) {
throw new PDOException($e->getMessage(), (int)$e->getCode());
}
if (!$db_pdo) {
die("Ошибка подключения к базе данных");
}
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$username = $_POST['username'];
$email = $_POST['email'];
$password = password_hash($_POST['password'], PASSWORD_DEFAULT);
$stmt = $db_pdo->prepare('SELECT * FROM users WHERE username = :username OR email = :email');
$stmt->execute(['username' => $username, 'email' => $email]);
$user = $stmt->fetch();
if ($stmt->execute(['username' => $username, 'password' => $password, 'email' => $email])) {
header('Location: login_hash.php?success=Вы успешно зарегистрировались');
exit();
} else {
header('Location: register.php?error=Ошибка при добавлении пользователя в базу данных');
exit();
}
}
?>
<!DOCTYPE html>
<html lang="ru">
<style>
body {
font-family: FRANKLIN GOTHIC MEDIUM;
background-color: #26004D;
color: #8D00FF;
text-align: center;
}
form {
margin-top: 50px;
}
.btn-primary {
font-family: FRANKLIN GOTHIC MEDIUM;
background-color: #2D0059;
color: #8D00FF;
margin-top: 20px;
margin-right: 10px;
padding: 5px 10px;
text-decoration: none;
border: none;
border-radius: 5px;
}
</style>
<head>
<meta charset="UTF-8">
<title>Регистрация</title>
</head>
<body>
<h1>Добро пожаловать на страницу регистрации</h1>
<?php if (isset($_GET['error'])): ?>
<p style="color: red;"><?php echo htmlspecialchars($_GET['error']);?></p>
<?php endif; ?>
<form method="post" action="regist.php">
<label for="username">Имя пользователя</label><br>
<input type="text" id="username" name="username" required><br>
<label for="email">Email</label><br>
<input type="email" id="email" name="email" required><br>
<label for="password">Пароль:</label><br>
<input type="password" id="password" name="password" required><br>
<input type="submit" value="Зарегистрироваться">
</form>
</body>
</html>