У меня есть этот код:пользователь уже принят?
$username = $_POST["username"];
$password_input = $_POST["password"];
$password = md5($password_input);
$email_input = $_POST["emailaddress"];
$email = md5($email_input);
if (!($stmt = $con->prepare("INSERT INTO `users` (`username`,`password`,`email_address`) VALUES (?,?,?)")) || !is_object($stmt)) {
die("Error preparing: (" .$con->errno . ") " . $con->error);
}
$stmt->bind_param('sss', $username, $password, $email);
$stmt->execute();
$stmt->close();
echo "User has been Created! Feel free to login - <a href='login.php'><span class='button color_blue'>Login</span></a>";
в базе данных SQL по электронной почте/имя пользователя может быть использован только один раз (UNIQUE), и я задавался вопросом, есть ли способ изменить эхо появляться только тогда, когда данные были успешно добавлено, а затем другое сообщение, если оно не было успешным.
Спасибо, я все еще новобранец!
EDIT: поэтому после использования какой-то код из ответа я сейчас нахожусь на:
$username = $_POST["username"];
$password_input = $_POST["password"];
$password = md5($password_input);
$email_input = $_POST["emailaddress"];
$email = md5($email_input);
if (!($stmt = $con->prepare("INSERT INTO `users` (`username`,`password`,`email_address`) VALUES (?,?,?)")) || !is_object($stmt)) {die("Error preparing: (" .$con->errno . ") " . $con->error);}
$stmt->bind_param('sss', $username, $password, $email);
$stmt->execute();
$stmt->close();
if ($con->affected_rows == 1) {echo "User has been Created! Feel free to login - <a href='login.php'><span class='button color_blue'>Login</span></a>";}
var_dump($con->affected_rows);
успешных и неуспешных INSERTS почему-то все есть -1, как их «изменяемых строк» выход
проверить, что касается метода связанных строк. –
Посмотрите на Security.SE для лучших практик в отношении паролей, но короткая заметка заключается в том, что MD5 - это шутка. Предполагая, что вы не хотите разрешать слишком похожие имена/электронные письма, вам нужно сделать [канонизацию Unicode до попытки проверить наличие] (http://labs.spotify.com/2013/06/18/creative-usernames /).Почему вы хешируете электронные письма - люди могут не восстанавливать свои учетные записи? Черт, как вы планируете известить их о чем-либо (например, о нарушении пароля)? –
@ clockwork-muse Я был хешированием писем, пока я тестировал incase Мне нужно было дать ссылку людям – Night