想要进行安全的注册并成为该错误代码。 我弄错了,我知道他的意思,但是我已经不由自主了。
$DB_HOST = "localhost";
$DB_USER = "root";
$DB_PASS = "";
$DB_NAME = "shoxygram";
$DB = new mysqli($DB_HOST, $DB_USER, $DB_PASS, $DB_NAME);
if ($DB -> connect_errno) {
die ("Verbindung zur Datenbank konnte nicht aufgebaut werden: " . $DB -> connect_errno);
}
if (!isset($_POST['username']) && (!isset($_POST['emailadr']) && (!isset($_POST['password']) && (!isset($_POST['passwdhl']))))) {
echo "Korrigieren Sie die Registration und füllen Sie eventuelle freibleibende Felder. <br/>";
} if (empty($_POST['username']) || empty($_POST['emailadr']) || empty($_POST['password']) || empty($_POST['passwdhl'])) {
echo "Korrigieren Sie die Registration und füllen Sie eventuelle freibleibende Felder. <br/>";
} if (!filter_var($_POST['emailadr'], FILTER_VALIDATE_EMAIL)) {
echo "Die e-Mail Adresse ist ungültig. <br/>";
} if (preg_match('/[A-Za-z0-9]+/', $_POST['username']) == 0) {
echo "Dein Username darf nur aus Buchstaben und Zahlen bestehen. <br/>";
} if (strlen($_POST['password']) > 20 || strlen($_POST['password']) < 5) {
echo "Dein Passwort muss zwischen 5 und 20 Zeichen lang sein. <br/>";
} if($_POST['password'] == $_POST['passwdhl']) {
if ($stmt = $DB -> prepare('SELECT id, password FROM users WHERE username = ?')) {
$stmt -> bind_param('s', $_POST['username']);
$stmt -> execute();
$stmt -> store_result();
if($stmt -> num_rows > 0) {
echo "Dieser Username existiert bereits. <br/>";
} else {
if($stmt = $DB -> prepare('INSERT INTO accounts (username, password, emailadr) VALUES (?, ?, ?)')) {
$Password = password_hash($_POST['password'], PASSWORD_DEFAULT);
$stmt -> bind_param('sss', $_POST['username'], $Password, $_POST['emailadr']);
$stmt -> execute();
echo "Du hast Dich erfolgreich registriert. Du kannst Dich nun einloggen.";
} else {
echo "Ein Fehler ist bei deiner Registrierung aufgetreten.";
}
}
$stmt -> close();
} else {
echo "Ein Fehler ist bei deiner Registrierung aufgetreten.";
}
$DB -> close();
} else {
echo "Dein wiederholtes Passwort muss mit dem anderen übereinstimmen. <br/>";
}
我已经尽力了,但是我无法弄错。如果有人能帮助我,那会更好,那又进一步。