首页 > 解决方案 > 检查数据库中是否有另一个用户名不起作用

问题描述

我用 PHP 对此进行了编码,它工作正常,它将我的数据从注册页面插入到我的数据库中。它创建帐户。我试图添加一个条件来检查用户名是否已经存在于数据库中,如果存在,我想将他重定向到一个新页面,说明用户名已经存在。如果数据库中不存在用户名,我希望他正常注册。就我而言,即使用户名存在于数据库中,它也会在现有用户名上创建另一个用户名。我看过视频并在互联网上阅读,但我真的不明白该怎么做。对不起我的英语不好,如果我不够清楚。

这是我的代码:

<?php 
session_start();
// Create connection
include('config.php');


if (isset($_POST['buton_inregistrare'])) {
    $username = mysqli_real_escape_string($conn, $_POST['username']);
    $password = mysqli_real_escape_string($conn, $_POST['password']);
    $password2 = mysqli_real_escape_string($conn, $_POST['password2']);
    $email = mysqli_real_escape_string($conn, $_POST['email']);
    $stergere = mysqli_real_escape_string($conn, $_POST['stergere']);
    $realName = mysqli_real_escape_string($conn, $_POST['numeReal']);
    $security = mysqli_real_escape_string($conn, $_POST['seqcod']);
    
    $verUsername = mysqli_query($conn, "SELECT login FROM account WHERE name='$username'");
    $count = mysqli_num_rows($verUsername);
    if ($count > 0) {
        header("location: ../inregistrare_esec2.html");
    }

    //check if passwords are the same
    if ($password == $password2) {
    
        //Creating user
        $sql = "INSERT INTO account(login, password, email, social_id, real_name, securitycode) VALUES('$username', PASSWORD('$password'), '$email', '$stergere', '$realName', '$security')"; 
        mysqli_query($conn, $sql);
        header("location: ../inregistrare_succes.html");
    }
    else{
        // passwords are not the same
        header("location: ../inregistrare_esec.html");
    }
        
    

}        

?>

这就是我的mysql的样子: mysql image

标签: phpmysqldatabaseauthenticationregistration

解决方案


推荐阅读