Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Złe odczytywanie "ifów"
JustHuman4
post
Post #1





Grupa: Zarejestrowani
Postów: 63
Pomógł: 2
Dołączył: 10.12.2011
Skąd: Stumilowy Las

Ostrzeżenie: (0%)
-----


Witam. Mam mały problem z ifami. Otóż tworzę rejestrację i mam takie oto pola:
Nick
E-mail
Hasło
Powtórz hasło
Mam ifa sprawdzającego czy wszystkie pola zostały uzupełnione oraz ifa sprawdzającego czy podane hasła są takie same. Tak to wygląda:


  1. //po wciśnięciu przycisku "rejestruj"
  2. if(isset($_POST['submit']))
  3. {
  4. $nick = $_POST['nick'];
  5. $mail = $_POST['mail'];
  6. $pass = $_POST['pass'];
  7.  
  8.  
  9. if(empty($nick) || empty($mail) || empty($pass)) echo 'Nie wszystkie pola zostały uzupełnione.';
  10. if($_POST['pass'] != $_POST['pass2'])
  11. {
  12. die('Podane hasła nie są takie same.');
  13. }
  14. else
  15. {
  16. //dalsza część kodu


Ładnie sprawdza czy hasła są takie same czy też nie, jednak problem z tym, że nie trzeba wcale uzupełniać wszystkich pól. Czyli np po uzupełnieniu pól nick i e-mail wyświetla się komunikat
"Nie wszystkie pola zostały uzupełnione." (czyli dobrze) ale od razu po tym wyświetla się komunikat "Gratulacje! Utworzyłeś konto ........"
O co tu chodzi?

Z góry dziękuję za każdą pomoc
Pozdrawiam


Ten post edytował JustHuman4 27.12.2011, 11:43:18
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
dami95
post
Post #2





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 3.10.2010

Ostrzeżenie: (0%)
-----


  1. die('Podane hasła nie są takie same.');

Ten kod zakańcza dalszą interpretację skryptu.

Ja zawszę sobie sprawdzam wszystkie elementy formularza i zależnie czy są błędy czy nie ma zmieniam zmienną $errors odpowiedio na wartość 1 lub 0.
W twoim przypadku zrobił bym tak:

  1. if(isset($_POST['submit'])) {
  2. $nick = $_POST['nick'];
  3. $mail = $_POST['mail'];
  4. $pass = $_POST['pass'];
  5.  
  6. $errors = 0;
  7.  
  8. if(empty($nick) || empty($mail) || empty($pass)) {
  9. echo 'Nie wszystkie pola zostały uzupełnione.';
  10. $errors = 1;
  11. } else {
  12. if($_POST['pass'] != $_POST['pass2']) {
  13. echo 'Podane hasła nie są takie same.';
  14. $errors = 1;
  15. }
  16. }
  17. }
  18.  
  19. if ($errors) {
  20. //dodajemy do bazy czy coś tam
  21. }


Ten post edytował dami95 27.12.2011, 19:37:02
Go to the top of the page
+Quote Post
JustHuman4
post
Post #3





Grupa: Zarejestrowani
Postów: 63
Pomógł: 2
Dołączył: 10.12.2011
Skąd: Stumilowy Las

Ostrzeżenie: (0%)
-----


Cytat(dami95 @ 27.12.2011, 19:36:07 ) *
  1. die('Podane hasła nie są takie same.');

Ten kod zakańcza dalszą interpretację skryptu.

Ja zawszę sobie sprawdzam wszystkie elementy formularza i zależnie czy są błędy czy nie ma zmieniam zmienną $errors odpowiedio na wartość 1 lub 0.
W twoim przypadku zrobił bym tak:

  1. if(isset($_POST['submit'])) {
  2. $nick = $_POST['nick'];
  3. $mail = $_POST['mail'];
  4. $pass = $_POST['pass'];
  5.  
  6. $errors = 0;
  7.  
  8. if(empty($nick) || empty($mail) || empty($pass)) {
  9. echo 'Nie wszystkie pola zostały uzupełnione.';
  10. $errors = 1;
  11. } else {
  12. if($_POST['pass'] != $_POST['pass2']) {
  13. echo 'Podane hasła nie są takie same.';
  14. $errors = 1;
  15. }
  16. }
  17. }
  18.  
  19. if ($errors) {
  20. //dodajemy do bazy czy coś tam
  21. }


Wykrywa błąd w linijce
  1. $errors = 1;

za
  1. echo 'Nie wszystkie pola zostały uzupełnione.';


Pozdrawiam i dzięki za odpowiedź
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 12.10.2025 - 12:53