@annaaaa4354343

Почему не записывает в бд?

помогите, почему сайт не подключается к базе данных на хостинге beget?
<?php
$email = filter_var(trim($_POST['email']), FILTER_SANITIZE_SPECIAL_CHARS);
$name = filter_var(trim($_POST['name']), FILTER_SANITIZE_SPECIAL_CHARS);
$password = filter_var(trim($_POST['password']), FILTER_SANITIZE_SPECIAL_CHARS);

if (mb_strlen($email) < 5 || mb_strlen($email) > 100) {
    echo "Недопустимая длина email (от 5 до 100 символов)";
    exit();
} elseif (mb_strlen($name) < 10 || mb_strlen($name) > 255) {
    echo "Недопустимая длина ФИО (от 10 до 255 символов)";
    exit();
} elseif (mb_strlen($password) < 10 || mb_strlen($password) > 32) {
    echo "Недопустимая длина пароля (от 10 до 32 символов)";
    exit();
}

$password = md5($password . "dfghdu1454f");

$mysql = new mysqli('localhost', 'linade3y_bdbd', 'Root5', 'linade3y_bdbd');

$result = $mysql->query("SELECT id FROM users WHERE email='$email' AND password='$password'");

if ($result->num_rows > 0) {
    echo "Вы уже зарегистрированы на нашем сайте";
    exit();
}

if ($mysql->query("INSERT INTO users (email, password, name) VALUES('$email', '$password', '$name')")) {
    $mysql->close();
    echo "Регистрация прошла успешно!";
    echo "<script>
            setTimeout(function() {
                window.location.href = 'account.html';
            }, 5000);
        </script>";
} else {
    echo "Ошибка при регистрации!";
}
$mysql->close();
?>
  • Вопрос задан
  • 766 просмотров
Решения вопроса 1
ipatiev
@ipatiev Куратор тега PHP
Потомок старинного рода Ипатьевых-Колотитьевых
Не очень понятно, что имеется в виду под "подключением", но будем считать что речь про добавление данных в БД. Это может присходить по трем причинам:
1. Код добавления вообще не вызывался.
2. При добавлении произошла ошибка.
3. Данные добавились в одну базу, а результат смотрим в другой.

Причем все три пункта проверить может только сам программист, никакой дядя с форума за него это не сделает.
Дядя с форума может помочь только со вторым пунктом. Рассказав, как отслеживать ошибки правильно. Например, добавив в код следующие строчки:

<?php
# Настройка ошибок
# Для локального сервера
ini_set('display_errors', 1);
# Всегда
error_reporting(E_ALL);
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);

Добавив этот код, надо запустить свой скрипт еще раз и смотреть, ошибки, которые он выведет.

Плюс обязательно прочесть статью https://habr.com/ru/articles/662523/
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы