Mam rejestrację z walidacja napisaną w php. Niestetu walidacja nie chroni przed wpisanem do bazy tych samych danych. W efekcie gdy wypełni się formularz i kliknie 5 razy na przycisk wyślij to 5 rekordów takich samych zostanie dodanych do bazy. Mój kod php to:
<? //jesli byl wyslany formularz przechodzimy do obsługi danych { //Obrabiamy wszystkie zmienne przekazane metodą POST foreach ($_POST AS $klucz => $wartosc) { $_POST[$klucz]=$wartosc; } $login=$_POST['login']; $haslo=$_POST['haslo']; $email=$_POST['email']; $blad_txt=''; $blad=false; //sprawdzamy czy jest wypełnine pole login $blad_txt.='<div>Podaj swój <b>login</b></div>'; $blad=true; } //sprawdzamy czy jest podane haslo $blad_txt.='<div>Podaj swoje <b>hasło</b></div>'; $blad=true; } //sprawdzamy czy jest podany prawidłowy adres e-mail $blad_txt.='<div>Podaj prawidłowy adres <b>e-mail</b></div><br/>'; $blad=true; } if(!$blad) { //poprawne dane - robmy z nimi co trzeba (zapisujemy do bazy danych itp.) include("config.php"); echo "<div>Wpisane dane zostały dodane do bazy! Kliknj <a href=\"index.php\">tutaj</a><br/><br/></div>"; } else { //cos jest zle – wyświetlamy stosowne komunikaty } } else { //wypelniamy zmienne pustymi danymi jesli formularz nie został jeszcze wysłany $login=''; $haslo=''; $email=''; } //wyswietlamy formularz Twój login: <input class="standard" style="margin-right: 50px;" type="text" name="login" value="'.$login.'" /><br/> Twoje hasło: <input class="standard" style="margin-right: 50px;" type="text" name="haslo" value="'.$haslo.'" /><br/> Twój e-mail: <input class="standard" style="margin-right: 50px;" type="text" name="email" value="'.$email.'" /><br/> <input class="submit" type="submit" style="margin-right: 50px;" name="wyslij" value="Wyślij" /> </form>'; ?>
Z góry dziękuję za pomoc