Utworzyłem formularz rejestracyjny który sprawdza czy podane dane pasują do wzorca, jednak pomimo podania poprawnych danych pierwszy preg_match() zwraca FALSE.
<?php
if(!isset($_POST['rejestruj'])) { echo "<form method=\"post\">"; echo "<table align=\"center\">"; echo "<td align=\"right\">"; echo "<input type=\"text\" name=\"login\" maxlenght=\"30\" size=\"30\">"; echo "<td align=\"right\">"; echo "<input type=\"password\" name=\"haslo\" maxlenght=\"30\" size=\"30\">"; echo "<td align=\"right\">"; echo "<input type=\"password\" name=\"powtorz_haslo\" maxlenght=\"30\" size=\"30\">"; echo "<td align=\"right\">"; echo "<input type=\"text\" name=\"email\" maxlenght=\"50\" size=\"50\">"; echo "<input type=\"submit\" name=\"rejestruj\" value=\"Rejestruj\">"; } elseif(empty($_POST['login']) || empty($_POST['haslo']) || empty($_POST['powtorz_haslo']) || empty($_POST['email'])) { echo "Wszystkie pola muszę być wypełnione!"; } elseif(strlen($_POST['login']) < 3
) { echo "Podany login jest za krótki!"; } elseif(!preg_match("/^[a-z0-9]$/D", $_POST['login'])) { echo "Podany login zawiera niedozwolone znaki!"; echo "Podany login jest już używany!"; } elseif(!preg_match("/^[a-z0-9]$/D", $_POST['haslo'])) { echo "Podane hasło zawiera niedozwolone znaki!"; } elseif($_POST['haslo'] !== $_POST['powtorz_haslo']) {
echo "Pola hasło i powtórz hasło różnią się!"; } elseif(!preg_match("/^[a-zA-Z0-9.-_]+@[a-zA-Z0-9.-_]+.[a-z]{2,4}$/D", $_POST['email'])) { echo "Podany adres e-mail jest w nieprawidłowy!"; echo "Podany adres e-mail jest już używany!"; } else {
echo "Rejestracja została zakończona powodzeniem!"; }
?>
Proszę o pomoc