У меня есть код, который регистрирует пользователей, предоставляя их имя пользователя, адрес электронной почты и пароль. Теперь я хочу ограничить пользователей разрешить только если новое имя пользователя не сохранено в базе данных. Если он вводит новое имя пользователя, тогда сообщение должно предупредить о том, что введенное вами имя пользователя недоступно.
Код, который я использовал, приведен ниже в register.php
<?php
include"connection.php";
if (!isset($_POST['submit'])) //if the user clicks the submit button then the PHP code POST the details
{
$user_name = $_POST['username'];
$user_password = $_POST['password'];
$user_email = $_POST['email'];
if($user_name && $user_password && $user_email)
{
$query = mysql_query("INSERT INTO users (username, password, email, type)
VALUES ('$user_name', '$user_password', '$user_email', '0')");
mysql_query($query);
echo '<script type="text/javascript">alert("You have been registered");</script>';
}
else {
echo '<script type="text/javascript">alert("All fields required");</script>';
header("location:user_create.html");
}
}
?>
Прежде всего:
Используйте SQL-запрос, чтобы проверить, доступен ли вход пользователя:
$result = mysql_query('SELECT * FROM users WHERE username="'.mysql_escape_string($_POST['username']).'"');
if(mysql_fetch_array($result)) {
// username is unavailable, do something ....
}
else {
// register user
}
Обратите внимание, что функция mysql устарела из PHP 5.5. Вместо этого используйте функции PDO.
Используйте ключ UNIQUE в поле db для поля имени пользователя. Затем вы можете использовать mysql_error(), чтобы поймать ошибку и показать пользователю, что он не может использовать это имя пользователя, потому что он уже хранится в db.