嗨我創建了註冊/註冊表單,註冊新用戶並將其添加到我的數據庫。 但在測試中,我發現有人可以使用已經使用的用戶名註冊。 這裏是我的代碼:MySQL PHP註冊表單用戶名檢查
<?php
require('db.php');
// If form submitted, insert values into the database.
if (isset($_REQUEST['username'])){
// removes backslashes
$username = stripslashes($_REQUEST['username']);
//escapes special characters in a string
$username = mysqli_real_escape_string($con,$username);
$email = stripslashes($_REQUEST['email']);
$email = mysqli_real_escape_string($con,$email);
$password = stripslashes($_REQUEST['password']);
$password = mysqli_real_escape_string($con,$password);
$trn_date = date("Y-m-d H:i:s");
$query = "INSERT into `users` (username, password, email, trn_date)
VALUES ('$username', '".md5($password)."', '$email', '$trn_date')";
$result = mysqli_query($con,$query);
if($result){
echo "<div class='form'>
<h3>You are registered successfully.</h3>
<br/>Click here to <a href='login.php'>Login</a></div>";
}
}
?>
我試圖改變查詢語句從數據庫中選擇所有用戶名和檢查,如果查詢的結果拉回相同的用戶名照耀處,並返回「採取用戶名」如果是這樣,如果不在運行上面顯示的instert語句的else語句中並打印成功註冊的消息。
任何幫助?
爲什麼不你在你的MySQL數據庫的'用戶名'列中添加一個唯一索引? – Sablefoste
http://stackoverflow.com/questions/20296777/trying-to-check-if-username-already-exists-in-mysql-database-using-php –
@Sablefoste你介意提供一些更多的信息?林有點不確定你的意思?對於這一切,我都相當陌生,所以很抱歉,如果我在這裏很愚蠢 –