При создании страницы регистрации проекта я работаю. Это очень просто, просто требуется, чтобы пользователь ввел имя пользователя и пароль, но я хочу, чтобы пользователь подтвердил свой пароль. Я использую:
$pattern = '/^[0-9]{6,}$/';
, чтобы гарантировать, что только цифры могут быть введены в качестве пароля и должны иметь длину не менее 6 цифр. Все работает нормально, кроме подтверждения пароля. Я приложил свой сценарий ниже. Кто-нибудь может увидеть, что я делаю не так? Когда я вписываю два разных значения в поля для паролей на моей странице register.html, кажется, что они просто принимают и вводят значения в базу данных независимо.
$username = $_POST['username']; //username
$password = $_POST['password']; //password
$confirmPass = $_POST['password2'];
$error = array();
$pattern = '/^[0-9]{6,}$/'; //pattern for password
if($_POST['register']){ //if register is clicked
if(!preg_match($pattern, $password)){ //is password doesnt match...
echo "Password must be at least 6 characters long and numerical characters only."; //error message
}
$query = "SELECT * FROM users WHERE username = '$username'"; //calls exising profiles
$result = mysqli_query($conn, $query);
if(mysqli_num_rows($result)>0){
echo "You already have an account!"; //if username existsm error message displayed
} else {
}
if($password === $confirmPass){ //if two passwords do not match
echo 'Passwords do not match!';
} else {
if(preg_match($pattern, $password)){ //if passwords match
$password = md5($confirmPass); //md5 encryption
$query = "INSERT INTO users (username, password) VALUES ('$username', '$password')"; //inserts into the database
echo'You are now a registered user!';
if($conn->query($query) === TRUE){
} else {
echo"Error: " . $query / "<br>" . $conn->error;
}
}
}
}