Konto tworzy, ale je duplikuje. Cały kod wygląda teraz tak:
<?PHP
//Formularz rejestracji
function form(){
<form action="" method="post">
<label for="login">Login</label>
<input type="text" name="login" required>
<br>
<label for="password">Hasło</label>
<input type="password" name="password" required>
<br>
<label for="password2">Powtórz hasło</label>
<input type="password" name="password2" required>
<br>
<input type="submit" name="wyslano" value="Załóż konto"/>
</form>
';
}
//Połączenie z bazą danych MySQL PDO
$db = new PDO
('mysql:host=46.4.177.235;dbname=BazaTestowa', 'Starve', 'cicholak1232', array(PDO
::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'utf8';")) or
die();
if(isset($_POST['wyslano'])){ //Sprawdzamy, czy submit został wciśnięty //Usuwamy białe znaki z przesłanych danych
$login = trim($_POST['login']); $password = trim($_POST['password']); $password2 = trim($_POST['password2']);
$errors = NULL; //Tworzymy zmienną przechowująca ewentualne błędy
//Sprawdzamy, czy przesłane dane mają odpowiednią ilość znaków
if(strlen($login)<3
) $errors .= 'Login musi zawierać co najmniej 3 znaki<br>'; if(strlen($password)<6
) $errors .= 'Hasło musi zawierać co najmniej 6 znaków<br>'; if($password!==$password2) $errors .= 'Hasła nie są takie same<br>';
//Sprawdzamy czy użytkownik o takim samym loginie już nie istnieje
$stmt = $db->prepare("SELECT COUNT(UID) FROM mapa_players WHERE Nick=:login");
$stmt->bindValue(":login", $login, PDO::PARAM_STR);
$stmt->execute();
$row = $stmt->fetch();
if($row[0]>0) $errors .= 'Konto o takim loginie już istnieje<br>';
if(empty($errors)){ //Jeśli nie ma błędów, rejestrujemy użytkownika $dodaj = $db->prepare("INSERT INTO mapa_players(UID,Nick,Haslo) VALUES (null, :login, :password)");
$dodaj->bindValue(":login", $login, PDO::PARAM_STR);
$dodaj->bindValue(":password", $password, PDO::PARAM_STR);
if(!$dodaj->execute()) print_r($dodaj->errorInfo()); $dodaj->execute();
echo "Zarejestrowałeś się. Możesz się teraz <a href=\"login.php\">zalogować</a>"; }
else{
echo '<div style="color:red">'.$errors.'</div>'; form(); //Wyświetlamy formularz
}
}
else form();
?>