Я делаю систему входа/регистрации. Единственная проблема, с которой я столкнулся, заключается в том, как сделать так, чтобы пользователи не могли регистрироваться с дублированными именами пользователей. Я огляделся и увидел много примеров, но мой код не работает.Как предотвратить дублирование имен пользователей, когда люди регистрируются с помощью Php?
Я хотел запретить пользователям иметь такое же имя пользователя, когда они регистрируются на моей странице. Любая помощь приветствуется.
MySQL Таблица:
Create_User:
ID | upload_img | fullname | username | role | password
1 | <img> | Billy | billyuser | User | test123
2 | <img> | Admin One | adminone | Admin | adminonpass
HTML:
<form action="create_user.php" method="post" enctype="multipart/form-data">
Profile Photo (Optional)<br>
(Max file size:2MB, file type:jpeg, jpg, png)<br><br>
<input type="file" name="fileToUpload" id="fileToUpload" required/><br><br>
Full Name:
<input type="text" name="fname" id="fname" size="40" maxlength="70" placeholder="Please enter your full name"><br><br>
Username:
<input type="text" name="uname" id="uname" size="35" maxlength="62" placeholder="Please enter your username"><br><br>
Role:
Customer<input type="radio" name="role" id="role" value="Customer">
Administrator<input type="radio" name="role" id="role" value="Admin"><br><br>
Password: <br>
<input type="password" name="pword" id="pword" size="35" pattern=".{6,}" placeholder="Password" title="Six or more characters"><br><br>
<input type="password" name="cfmpword" id="cfmpword" size="35" placeholder="Confirm Password"><br><br>
<button type="submit" name="signbtn" style="border:none; background:white; padding:0px">
<img src="button/Sign%20up.png">
</button><br>
<a href="signin.html">Back to Sign In</a>
</form>
Php:
<?php
if (isset($_FILES["fileToUpload"]["name"])) {
$file=$_FILES["fileToUpload"]["name"];
$target="uploadfile/" . $file;
$fname=$_POST['fname'];
$uname=$_POST['uname'];
$role=$_POST['role'];
$pword=$_POST['pword'];
$conn=mysqli_connect("localhost", "root", "" , "SportFacility");
$sql_insert = "INSERT into create_user (upload_img, fullname, username, role, password)
values ('$file', '$fname' , '$uname' , '$role' , '$pword')";
$result=mysqli_query($conn, $sql_insert);
$allowedType=array("image/jpeg", "image/jpg", "image/png");
if(in_array ($_FILES["fileToUpload"]["type"] ,$allowedType))
{
echo "<script type='text/jscript'>alert('File type is acceptable')</script>";
}
else
{
echo "<script type='text/jscript'>alert('Invalid file type')</script>";
exit();
}
if($_FILES["fileToUpload"]["size"] < 2000000)
{
echo "<script type='text/jscript'>alert('File size is acceptable')</script>";
}
else
{
echo "<script type='text/jscript'>alert('File is too large')</script>";
exit();
}
$directoryfile=move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target);
if($result)
{
header("Location: login.html");
}
else
{
header("Location: register.html");
}
mysqli_close($conn);
}
if (isset($_POST['uname']))
$uname=$_POST['uname'];
$conn=mysqli_connect("localhost", "root", "" , "SportFacility");
$sqluser="SELECT username FROM create_user WHERE username='$uname' ";
$qresult=mysqli_query($conn, $sqluser);
$count=mysqli_num_rows($qresult);
if($count)
{
echo "Username is already taken";
}
else
{ }
?>
Я считаю, что вы должны проверить $ рассчитывать на числа в $ кол проведет ряд результат запроса возвращается как: 'если ($ число> 0) {...} ' –