проверка — проверьте, доступно ли имя пользователя в переполнении стека

Я пытаюсь выполнить проверку «Дубликат имени пользователя», используя приведенный ниже код. Он продолжает говорить мне, что имя пользователя доступно, хотя на самом деле это не так. Может кто-нибудь сказать мне, что я делаю не так.

FORM

<form method="post" action="scripts/checkusername.php">
<div class="form-group" hidden>
<label for="store">User ID</label>
<input type="text" class="form-control" name="uid" id="uid" value="<?php echo " " . $_SESSION["UserID"] . " "; ?>">
</div>
<div class="form-group">
<label class="control-label">Store URL</label>
<p class="form-control-static"><b><?php echo isset($row['Username']) ? $row['Username'] : NULL; ?></b>.example.com</p>
</div>
<div class="form-group">
<label for="store">Store Name</label>
<input type="text" class="form-control" name="username" id="username" value="<?php echo isset($row['Username']) ? $row['Username'] : NULL; ?>">
</div>
<div class="form-group">
<label for="exampleInputEmail1">Email Address</label>
<input type="email" class="form-control" name="email" id="email" value="<?php echo isset($row['EmailAddress']) ? $row['EmailAddress'] : NULL; ?>">
</div>

<button type="submit" class="btn btn-prime">Update Details</button>
</form>

SCRIPT

<?php

$servername = "localhost";
$username = "root";
$password = "root";
$dbname = "users";

$conn = new mysqli($servername, $username, $password, $dbname);

if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}

if (isset($_POST['username']))
{
$username = mysql_real_escape_string($_POST['username']);

if (!empty($username))
{
$username_query = mysql_query("SELECT *
FROM users
WHERE Username = '$username'");
$count=mysql_num_rows( $username_query);
if($count==0)
{
echo "Username doesn't exist";
exit;
}
else
{
echo "Username already exists";
exit;
}
}
}

?>

0

Решение

Так как вы использовали new mysqli чтобы открыть соединение с базой данных, вы должны использовать mysqli функции для выполнения запросов, а не mysql функции.

if (isset($_POST['username']))
{
$username = $_POST['username'];

if (!empty($username))
{
$username_query = $conn->prepare("SELECT *
FROM users
WHERE Username = ?");
$username_query->bind_param("s", $username);
$username_query->execute();
$count = $username_query->num_rows;
if($count==0)
{
echo "Username doesn't exist";
exit;
}
else
{
echo "Username already exists";
exit;
}
}
}
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]