PHP检查用户是否已注册

时间:2016-04-24 22:53:05

标签: php mysql login registration

我的代码存在问题,无法检查用户名是否已注册。我在这里搜索了不同的解决方案,并在我的代码上实现了一些解决方案,但我仍然无法让它工作。我尝试多次注册相同的用户名仍然可以注册,而不会提示我已经使用了用户名。如果这很容易解决,我很抱歉,因为我是php和mysql的新手。

我尝试了多种解决方案,但似乎没有一种方法适合我。这是我最近的代码迭代。

<?php
session_start();

if (isset($_POST['submit'])) {

    $dbCon = mysqli_connect("localhost", "root", "badassrichv", "FootballDB");

    if (mysqli_connect_errno()) {
    echo "Failed to connect: " . mysqli_connect_error();
    }

    $username = strip_tags($_POST['name']);
    $password = strip_tags($_POST['password']);
    $email = strip_tags($_POST['email']);

$checkName = 'SELECT * FROM user WHERE username = "$username"';
$run = mysqli_query($dbCon, $checkName);
$data = mysqli_fetch_array($run, MYSQLI_NUM);

if ($data[0] > 0) {
    echo "<script>alert('Name already registered. Input a different name')</script>";
    exit();

} else {

$sql = "INSERT INTO user (username, password, email) VALUES ('$username', '$password', '$email')";

}

....More code

2 个答案:

答案 0 :(得分:0)

if ($data[0] > 0) {替换为if (mysqli_num_rows($run) > 0) {

完成此操作后,您还可以摆脱$data = mysqli_fetch_array($run, MYSQLI_NUM);行。

答案 1 :(得分:0)

尝试在数据库的用户名列中放置一个唯一键,并捕获重复的条目错误代码