Не знаю, почему, но когда я попал в submit в форме регистра, он не вставлял данные в базу данных, он выполняет последнее заявление ниже, перенаправляя страницу успеха регистрации, которая меня смущает. Я работал, но сделал что-то, и я не могу понять, что не так.
<?php if(isset($_POST['submit'])) { $username = $_POST['username']; $password = md5($_POST['password']); $email = $_POST['email']; $Fname = $_POST['Fname']; $Lname = $_POST['Lname']; $Display1 = $_POST['Display1']; $Display2 = $_POST['Display2']; $query = mysql_query("SELECT * FROM users WHERE username ='$username'"); if(empty($username) or empty($password) or empty($email) or empty($Fname) or empty($Lname) or empty($Display1)) { echo '<p>Fields Empty!</p>'; } else if(mysql_num_rows($query) > 0){ $query = mysql_query("SELECT * FROM users WHERE username ='$username' AND password ='$password'"); echo'<p>Username or Password Already Exists!</p>'; } else { mysql_query("INSERT INTO users VALUES('', '$username', '$password', '2', 'a', '$Fname', '$Lname', '$email', '$Display1', '$Display2')"); $subject = "Membership Confirmation"; $message = "Hello, You have registered an account on Joepepjoepep.com"; $from = "From: joepep235@gmail.com"; header("location:signuppayment.php"); mail($email, $subject, $message, $from); } } ?>
Попробуйте это: вы забыли поместить строки, которые нужно вставить в свою базу данных.
mysql_query("INSERT INTO users VALUES('', '$username', '$password', '2', 'a', '$Fname', '$Lname', '$email', '$Display1', '$Display2')");
Измените это на что-то вроде этого:
mysql_query("INSERT INTO users(id, username, password, Display1, Display2, email, Fname, Lname, user_level, type) VALUES ('', '$username', '$password', '$Display1', '$Display2', '$email', '$Fname', '$Lname', '2', 'a')");
и поэтому примените это в своем коде:
<?php if(isset($_POST['submit'])) { $username = $_POST['username']; $password = md5($_POST['password']); $email = $_POST['email']; $Fname = $_POST['Fname']; $Lname = $_POST['Lname']; $Display1 = $_POST['Display1']; $Display2 = $_POST['Display2']; $query = mysql_query("SELECT * FROM users WHERE username ='$username'"); if((empty($username)) || (empty($password)) || (empty($email)) || (empty($Fname)) || (empty($Lname)) || (empty($Display1))) { echo '<p>Fields Empty!</p>'; } else if(mysql_num_rows($query) > 0){ $query = mysql_query("SELECT * FROM users WHERE username ='$username' AND password ='$password'"); echo'<p>Username or Password Already Exists!</p>'; } else { mysql_query("INSERT INTO users(id, username, password, Display1, Display2, email, Fname, Lname, user_level, type) VALUES ('', '$username', '$password', '$Display1', '$Display2', '$email', '$Fname', '$Lname', '2', 'a')"); $subject = "Membership Confirmation"; $message = "Hello, You have registered an account on Joepepjoepep.com"; $from = "From: joepep235@gmail.com"; header("location:signuppayment.php"); mail($email, $subject, $message, $from); } } ?>
Надеюсь это поможет.
Создайте уникальный ключ для поля имени пользователя в определении таблицы.
Тогда имя пользователя может быть только один раз в таблице, а второй запрос на вставку с тем же именем пользователя не будет работать с определенным кодом ошибки . (и вы избегаете условия гонки из-за ваших многочисленных запросов)
Вы можете проверить этот код ошибки, а затем отобразить сообщение об ошибке «имя пользователя уже используется».