Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] "Musisz wypełnić wszystkie pola!" funkcja !empty
Forum PHP.pl > Forum > Przedszkole
Kerth
Cześć,
mam pytanie jak zrobić coś takiego, że po kliknięciu "Zarejestruj" i w polach nie ma wpisanego tekstu pojawia się komunikat:

"Musisz wypełnić wszystkie pola!"

Mam taki kod:

  1. if (!empty($nick) && !empty($email) && !empty($haslo) && !empty($haslo2) )
  2. {
  3.  
  4. if ( !filter_var($email, FILTER_VALIDATE_EMAIL) )
  5. {
  6. echo "<br><b><font color = red>E-mail nie jest prawidłowy! </font></b></br>";
  7. }
  8. $nazwazajeta = mysql_query("SELECT * FROM `GRACZE` WHERE `nick` = '$nick'");
  9. if (mysql_num_rows($nazwazajeta) <> 0)
  10. {
  11. echo "<br><b><font color = red>Podana nazwa użytkownika jest już zajęta!</font></b></br>";
  12. }
  13. $emailzajety = mysql_query("SELECT * FROM `GRACZE` WHERE `email` = '$email'");
  14. if (mysql_num_rows($emailzajety) <> 0)
  15. {
  16. echo "<br><b><font color = red>Ten e-mail jest już w użyciu!</font></b></br>";
  17. }
  18. else
  19. {
  20. mysql_query("INSERT INTO `GRACZE` (`nick`, `email`, `haslo`, `haslo2`) VALUES ('$nick', '$email', '$haslo', '$haslo2')") or die(mysql_error());
  21. echo "<b><font color= green>Zostałeś pomyślnie zarejestrowany.</color></b>";
  22. }
  23. else
  24. {
  25. echo "<br><b><font color= red>Musisz wypełnić wszystkie pola!</font></b><br>";
  26. }




Część kodu wyciąłem(nie będę zamieszczać całości) Ale to jest najważniejsze.
I tak problem w aktualnym kodzie jest taki, że po uruchomieniu pliku register.php od razu wysyła komunikat o tym,żeby wypełnić wszystkie pola. A ja chciałbym, żeby się to działo dopiero po kliknięciu i jeśli nie wpisano danych.
Czy może mi ktoś pomóc?

Próbowałem też tak ale nic nie daje:

  1. if (preg_match("@^$@", $_POST['nick'])){
  2. echo "<center><b><font color= red>Musisz wypełnić wszystkie pola!</font></b><br></center>";
  3. } else {
  4. echo "<center><b><font color= red>Musisz wypełnić wszystkie pola!</font></b><br></center>";
  5. }
kayman
na moje błąd nie jest w tym kodzie tylko w czymś co wywołuje ten kod bo nie sprawdza tablicy $_POST jak się należy
Michael2318
Do sprawdzenia czy tablica $_POST jest pusta używamy funkcji empty, która zwróci TRUE jeśli pole jest puste, bądź też false jeśli coś tam jest wpisane.

Pytasz jak zrobić aby bład wypluwało dopiero po wpisaniu danych. Najprościej sprawdzać czy pole submit zostało już kliknięte.

  1. if ( !isset($_POST['submit']) ) // jeśli nie kliknięto submit
  2. {
  3. echo '<form action="plik.php" method="post">
  4. <input type="text" name="testowy"><br>
  5. <input type="submit" name="submit" value="Dalej">
  6. </form>'; // wyświetlamy formularz
  7. }
  8. else // jesli kliknieto submit to sprawdzamy dane
  9. {
  10. if ( empty($_POST['testowy']) ) // jesli pole 'testowy' jest puste to...
  11. {
  12. die('pole jest puste! uzupelnij je!');
  13. }
  14. else
  15. {
  16. echo 'pole jest uzupelnione, brawo!';
  17. }
  18. }
Marine
  1. if (!$nick || !$email || !$haslo || !$haslo2) $errors .= '- Musisz wypełnić wszystkie pola<br />';


Później wyświetl sobie $errors gdzie chcesz aby pokazał się błąd.

Jeżeli nie zadziała sprawdź przez echo czy zmienne są w ogóle przesyłane.
Wazniak96
Funkcja isset, empty sprawdza jedynie czy dany ciąg jest pusty, isset sprawdza czy zmienna istnieje. smile.gif
Posio
  1. if(isset($a) && !empty($a)) { }


+ to, że wszystkie akcje kodu php wykonujesz przed wyświetleniem HTMLA smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.