Logowanie jest już okej, ale natomiast nie działa rejestracja. Pokazuje się okno że konto zostało założone, ale jednak w bazie danych nic nie tworzy:
<?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='.....', 'Starve', '.....', 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
$password = sha1($password); //kodujemy hasło
$dodaj = $db->prepare("INSERT INTO mapa_players VALUES (null, $login, $password)");
$dodaj->bindValue(":login", $login, PDO::PARAM_STR);
$dodaj->bindValue(":password", $password, PDO::PARAM_STR);
$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();
?>