Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [HTML][PHP]Formularz - wykrywanie pustych inputów, określenie znaków
StadiPL
post
Post #1





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 11.05.2013

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


Witam
Mam pewien problem i nie potrafię znaleźć rozwiązania na internecie. Chciałem zacząć powoli i małymi kroczkami robić sobie system kont i logowania. Zrobiłem sobie prosty formularz w HTLM i zacząłem pisać do niego odpowiedni kod PHP. Mój kod potrafi już sprawdzić czy hasło oraz jego powtórzenie się zgadza (to samo z e-mailem), jednak zauważyłem przy testach że mogę równie dobrze zostawić pola puste i też będzie się to zgadzać (logiczne). Moje pytania są następujące:
Jak sprawdzać czy pole nie jest puste?
Jak ograniczyć użytkownika aby mógł wpisać tylko wybrane przezemnie znaki?
Jak sprawdzić czy email jest poprawny? tzn czy posiada @ i domene
Dołączam kody:
  1. Rejestruj się:
  2. <form action="register_function.php" method="post">
  3. nick: <input type="text" name="nickname" /><br />
  4. haslo: <input type="password" name="password" /><br />
  5. powtorz haslo: <input type="password" name="password_r" /><br />
  6. email: <input type="text" name="email" /><br />
  7. powtorz email: <input type="text" name="email_r" /><br />
  8. <input type="submit" value="Rejestruj" />
  9. </form>

  1. <?php
  2. if ($_POST['password'] === $_POST['password_r']) {
  3. if ($_POST['email'] === $_POST['email_r']) {
  4. echo "GIT";
  5. } else {echo "Podane adresy email nie sa identyczne"; }
  6. } else {echo "Podane hasla nie sa identyczne"; }
  7. ?><br />
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Szymciosek
post
Post #2





Grupa: Zarejestrowani
Postów: 1 168
Pomógł: 126
Dołączył: 5.02.2010
Skąd: Świdnica

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


Nie robisz żadnych wcięć tylko tak wszystko w jednej linii zawsze?

  1. <?php
  2. $no_nickname="Podanie nazwy uzytkownika jest wymagane";
  3. $no_password="Podanie hasla i jego powtorzenie jest wymagane";
  4. $different_password="Podane hasla roznia sie'";
  5. $no_email="Podanie e-maila i jego powtorzenie jest wymagane";
  6. $different_email="Podane e-maile roznia sie";
  7. $bad_nickname="Niedozwolona nazwa uzytkownika";
  8. $bad_password="Niedozwolone haslo";
  9. $bad_email="Nieprawidłowy adres email";
  10.  
  11. if(empty($_POST['nickname']))
  12. {
  13. $no_nickname;
  14. }
  15. else if(empty($_POST['password']) || empty($_POST['password_r']))
  16. {
  17. echo $no_password;
  18. }
  19. else if($_POST['password'] != $_POST['password_r'])
  20. {
  21. echo $different_password;
  22. }
  23. else if(empty($_POST['email']) || empty($_POST['email_r']))
  24. {
  25. echo $no_email;
  26. }
  27. else if($_POST['email'] != $_POST['email_r'])
  28. {
  29. echo $different_email;
  30. }
  31. else if(strlen($_POST['nickname']) < 3 || !preg_match('/^[A-Za-z0-9]+$/', $_POST['nickname']))
  32. {
  33. echo $bad_nickname;
  34. }
  35. else if(strlen($_POST['password']) < 3 || !preg_match('/^[A-Za-z0-9]+$/', $_POST['password']))
  36. {
  37. echo $bad_password;
  38. }
  39. else if(!filter_var($_POST['email'],FILTER_VALIDATE_EMAIL))
  40. {
  41. echo $bad_email;
  42. }
  43. else
  44. {
  45. echo"git";
  46. }
  47. ?>


Co do zmiennych zawierających tekst błędu, to trzymałbym to osobiście w jakiejś osobnej klasie i umieściłbym je tam jako stałe.

Dodatkowo z tego co mi wiadomo nie używa się już <br /> na rzecz css.

Teraz powyższy kod może Ci się wydawać trochę chaotyczny, ale w przyszłości na pewno nie poprzestaniesz tylko na echo.

Ten post edytował Szymciosek 12.05.2013, 08:56:31
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: 13.10.2025 - 23:30