Этот вопрос закрыт для ответов, так как повторяет вопрос Почему не получается записать в базу данных?
@gzmone

Не отправляются данные в БД, как решить?

Доброе время суток, знатоки помогите понять в чем проблема.
При регистрации данные не попадают в бд, совершенно, хотя выводил проверку связи с бд, данные отправляет.
Может ошибка в коде?
<?
// Страница регистрации нового пользователя

// Соединямся с БД
$link=mysqli_connect("localhost", "БДлог", "БДпар", "users");

if(isset($_POST['submit']))
{
    $err = [];

    // проверям логин
    if(!preg_match("/^[a-zA-Z0-9]+$/",$_POST['login']))
    {
        $err[] = "Логин может состоять только из букв английского алфавита и цифр";
    }

    if(strlen($_POST['login']) < 3 or strlen($_POST['login']) > 30)
    {
        $err[] = "Логин должен быть не меньше 3-х символов и не больше 30";
    }

    // проверяем, не сущестует ли пользователя с таким именем
    $query = mysqli_query($link, "SELECT user_id FROM users WHERE user_login='".mysqli_real_escape_string($link, $_POST['login'])."'");
    if(mysqli_num_rows($query) > 0)
    {
        $err[] = "Пользователь с таким логином уже существует в базе данных";
    }

    // Если нет ошибок, то добавляем в БД нового пользователя
    if(count($err) == 0)
    {

        $login = $_POST['login'];

        // Убераем лишние пробелы и делаем двойное хеширование
        $password = md5(md5(trim($_POST['password'])));

        mysqli_query($link,"INSERT INTO users SET user_login='".$login."', user_password='".$password."'");
        header("Location: login.php"); exit();
    }
    else
    {
        print "<b>При регистрации произошли следующие ошибки:</b><br>";
        foreach($err AS $error)
        {
            print $error."<br>";
        }
    }
}
?>


<form method="POST">
Логин <input name="login" type="text" required><br>
Пароль <input name="password" type="password" required><br>
<input name="submit" type="submit" value="Зарегистрироваться">
</form>
  • Вопрос задан
  • 74 просмотра
Решения вопроса 1
@eandr_67
web-программист (*AMP, Go, JavaScript, вёрстка).
if (mysqli_query($link,"INSERT INTO users SET user_login='".$login."', user_password='".$password."'")) {
    header("Location: login.php");
    exit;
} else {
    var_dump(mysqli_error($link));
}

P.S. Если ваши "курсы" рекомендуют писать $password = md5(md5(trim($_POST['password'])));, значит их клепал откровенный неуч, ничего не смыслящий в back-end. Срочно меняйте их на что-то более адекватное - иначе потом придётся долго и мучительно переучиваться.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Вопрос закрыт для ответов и комментариев

Потому что уже есть похожий вопрос.
Похожие вопросы