2009-10-26 20 views
5

Nowość w tym wszystkim, wybaczcie mojej niewiedzy. Próbuję dowiedzieć się, jak dodać pole "Potwierdź swoje hasło" do mojego formularza. Korzystanie z PHP i mySQL. Czy jest to wpisane w kodzie HTML i jak można go ustawić tak, aby automatycznie sprawdzało, czy pola hasła i pola potwierdzenia pasują do siebie.Potwierdź hasło?

+2

Jak to jest związane z MySQL? Czy chcesz przechowywać oba pola hasła w DB i mieć ograniczenie, aby upewnić się, że pasują? Jeśli tak, to nie byłby najlepszy sposób wymuszenia tego ograniczenia w interfejsie użytkownika ... – dcrosta

Odpowiedz

16

Wystarczy dostać zarówno polach Hasło i Potwierdź hasło w postaci przedstawienia PHP i test na równość:

if ($_POST["password"] === $_POST["confirm_password"]) { 
    // success! 
} 
else { 
    // failed :(
} 

gdzie password i confirm_password są identyfikatory z wejść tekstowych HTML dla haseł.

1

Czy używasz jakiegoś frameworka? Jeśli nie, powinno to być tak proste, jak sprawdzenie po zapisaniu, że oba pola są ustawione i że $ confirmationPassword == $ passWord. Następnie zastosuj dowolne sprawdzanie poprawności do hasła przed zapisaniem go w SQL.

4

Próbujesz utworzyć formularz sprawdzania poprawności. Dobrym pomysłem jest sprawdzenie po stronie klienta (przy użyciu javascript), aby uzyskać szybszą odpowiedź dla użytkownika w interfejsie i po stronie serwera (ponieważ użytkownik może mieć wyłączony javascript - i ponieważ powinieneś nigdy nie ufać ślepo w danych wprowadzanych przez użytkownika. Przeczytaj Should you do validation on your server side, aby uzyskać więcej informacji na ten temat).

Wystarczy porównać dwie podane wartości. Jeśli jest poprawna, wstaw do bazy danych. Jeśli nie, nie rób nic i zwróć wiadomość do użytkownika, mówiąc, że hasło jest nieprawidłowe.

Nie mogę podać więcej szczegółów, ponieważ nie podano wystarczających lub szczegółowych informacji o środowisku php (używane frameworki, używane biblioteki itp.).

+1

"i po stronie serwera (ponieważ użytkownik może mieć wyłączony javascript)." - Nie jest to powód do stosowania sprawdzania poprawności po stronie serwera. – strager

+2

Uh, tak, jest. Sprawdzanie po stronie klienta jest przydatne, ale walidacja po stronie serwera zapewnia uwzględnianie problemów po stronie klienta. – ceejayoz

+1

Przypuśćmy, że "Dlaczego nie mogę po prostu napisać walidacji javasctip?", Napisałem po to, aby sprawdzić po stronie serwera, aby pamiętać, że musi to zrobić. Nie mogę podać wszystkich informacji na temat bezpieczeństwa w prostej odpowiedzi. – GmonC

2

można sprawdzić go w JavaScript używając

<html><title></title><head> 
<script> 
     function validate(){ 

    if(!document.getElementById("password").value==document.getElementById("confirm_password").value)alert("Passwords do no match"); 
    return document.getElementById("password").value==document.getElementById("confirm_password").value; 
    return false; 
    } 
    </script> 
</head> 
<body> 
    <form onSubmit="return validate()" action="nextPage.php"> 
    Password: <input type="text" id="password" name="password" /><br/> 
    Reenter Password: <input type="text" id="confirm_password" name="confirm_password" /> 
    <input type="submit" value="submit"/> 
    </form> 
</body> 
</html> 

A na stronie sever trzeba sprawdzić je ponownie w przypadku klient nie mieć włączony JavaScript,

if($_GET['password']==$_GET['confirm_password']) 

Musisz użyć $ _POST zamiast $ _GET w przypadku metody POST:

+0

Czy chciałbyś kiedykolwiek użyć GET w odniesieniu do hasła? Wygląda na to, że POST byłby drogą do zrobienia ... – Dscoduc

+0

masz rację dla haseł, musimy użyć metody POST .. Ja tylko dałem przykład, tylko podstawowe przesłanie formularza przy użyciu obu metod z walidacją :) – Xinus

2

Zaktualizowałem kod, brakuje dwukropka na formularzu przesłanym.

<html> 
    <title></title> 
    <head> 
    <script> 
     function validate(){ 

      var a = document.getElementById("password").value; 
      var b = document.getElementById("confirm_password").value; 
      if (a!=b) { 
       alert("Passwords do no match"); 
       return false; 
      } 
     } 
    </script> 
    </head> 
    <body> 
     <form onSubmit="return validate();" "> 
     Password: <input type="text" id="password" name="password" /><br/> 
     Re-enter Password: <input type="text" id="confirm_password" name="confirm_password" /> 
     <input type="submit" value="submit"/> 
     </form> 
    </body> 
</html>