мой файл регистрации php создает слишком много записей в базе данных - PullRequest
0 голосов
/ 08 июня 2019

У меня есть файл с именем reg.php , который расширяет мой registration.php для системы входа в систему.

Регистрация связана с базой данных MySQL, и у меня есть руководство увеличение идентификатора пользователя в PHP вместо автоинкремента в MySQL, потому что я мог не заставить эту работу.

Когда я нажимаю кнопку регистрации, мой код создает две записи в БД и Я не знаю почему.

<?php

if(isset($_POST["register_user"])){
header('location: login.php');
}



if(isset($_POST["username"])){                                                  
    $username = mysqli_real_escape_string($db, $_POST['username']); 
}

if(isset($_POST["email"])){
    $email = mysqli_real_escape_string($db, $_POST['email']);
}

if(isset($_POST["password"])){
    $password = mysqli_real_escape_string($db, $_POST['password']);
}

if(isset($_POST["passwordconfirm"])){
    $passwordconfirm = mysqli_real_escape_string($db, $_POST['passwordconfirm']); 
}


$idcount = mysqli_num_rows(mysqli_query($db, "SELECT id FROM user"));       


$regquery = "INSERT INTO user (id, name, email, password) VALUES ('$idcount', '$username', '$email', '$password')";
mysqli_query($db, $regquery);

?>

все, что я хочу, - это одна запись.

1 Ответ

0 голосов
/ 08 июня 2019

В вашем вопросе нет ничего, что могло бы вставить две строки в вашу базу данных.Я предполагаю, что вы вызываете этот скрипт дважды, возможно потому, что ваша форма имеет два способа отправки одних и тех же данных:

  1. Обычный способ, с атрибутом формы action .
  2. Через событие, например onSubmit

Вы должны остановить первое, если последнее используется.Посмотрите на пример в ссылке для 2. Он говорит вам, как остановить отправку формы:

  // For this example, don't actually submit the form
  event.preventDefault();

Так что, если onSubmit работает, он останавливает нормальную отправку формы, но если этоне работает, форма отправляется обычным способом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...