Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Funkcja empty
wiktor1984
post 12.06.2014, 22:28:10
Post #1





Grupa: Zarejestrowani
Postów: 45
Pomógł: 0
Dołączył: 29.05.2014

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


Mam mały problem ze sprawdzaniem czy pola zostały wypełnione w formularzu
Otóż formularz posiada dwa pola przed dodaniem skrypt ma sprawdzać czy zostały wypełnione.
gdy nie wypełnimy obydwu jest ok wyskakuje 'Wypelnij wszystkie pola'
ale wystarczy że wypełnie jedno pole a drugie będzie puste rekord się dodaje.
Jak połączyć te dwa warunki?

  1. if (!empty($_POST['title']) || !empty($_POST['contents']))
  2.  
  3. {
  4. $sql="INSERT INTO article (title, contents) VALUES ('$_POST[title]','$_POST[contents]')";
  5. if (!mysql_query($sql,$connection))
  6. {
  7. die('Błąd: ' . mysql_error());
  8. }
  9. echo 'Artykuł został dodany';
  10. }
  11.  
  12. else
  13.  
  14. {
  15. echo 'Wypelnij wszystkie pola';
  16. }


i jeszcze jedno pytanie skrypt jak i formularz jest na jednej stronie
po wejściu na strone od razu wyskakuje błąd 'Wypelnij wszystkie pola'

Mógłby mnie ktoś nakierować jakiego warunku if należało by użyć
aby dodawanie wykonywało się dopiero po wciśnięciu dodaj w formularzu
Go to the top of the page
+Quote Post
johny_s
post 12.06.2014, 22:59:35
Post #2





Grupa: Zarejestrowani
Postów: 594
Pomógł: 122
Dołączył: 17.07.2005
Skąd: P-na

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


  1. if (!empty($_POST['title']) && !empty($_POST['contents']))


Cytat
Mógłby mnie ktoś nakierować jakiego warunku if należało by użyć

sprawdź czy były wysłany post i wtedy rozpoczynaj walidacje
Go to the top of the page
+Quote Post
Michael2318
post 12.06.2014, 23:09:18
Post #3





Grupa: Zarejestrowani
Postów: 651
Pomógł: 116
Dołączył: 3.06.2012
Skąd: Lędziny

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


Cytat(wiktor1984 @ 12.06.2014, 23:28:10 ) *
ale wystarczy że wypełnie jedno pole a drugie będzie puste rekord się dodaje.
Jak połączyć te dwa warunki?



  1. if (!empty($_POST['title']) || !empty($_POST['contents']))


W warunku zdefiniowałeś operator OR, czyli: Jeśli pole title lub pole contents nie jest puste to [coś tam].
W Twoim przypadku powinno to wyglądać tak:

Jeśli pole title i pole contents nie jest puste to [coś tam].

Tak więc zamień operator OR ( || ) na AND ( && ) i po problemie.

Co do drugiego pytania to sprawdzaj czy wciśnięty został submit:

  1. if ( isset($_POST['submit']) )
  2. {
  3. // walidacja danych wpisanych do formularza i dalsze instrukcje...
  4. }
  5. else
  6. {
  7. // jeśli submit nie został wciśnięty to wyświetlasz po prostu czysty formularz do wypełnieniea
  8. }
Go to the top of the page
+Quote Post
wiktor1984
post 12.06.2014, 23:24:41
Post #4





Grupa: Zarejestrowani
Postów: 45
Pomógł: 0
Dołączył: 29.05.2014

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


Michael2318
Wielkie dzięki za szczegółowe wytłumaczenie

Ten post edytował wiktor1984 12.06.2014, 23:26:30
Go to the top of the page
+Quote Post
TwojPan
post 13.06.2014, 18:30:07
Post #5





Grupa: Zarejestrowani
Postów: 56
Pomógł: 0
Dołączył: 13.08.2013

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


isset i empty to nie to samo. Przy proble wpisania 'spacji' lub jakiegos 'bialego znaku' przy EMPTY skrypt przejdzie.

Najlepiej stosowac:

if(isset(chop($_POST['zmienna']))) // chop usuwa biale znaje z prawej i lewej strony. do dyspozycji ltrim() i rtrim() / lewo / prawo /
{
//jesli zawiera wartosc
}else{

// jesli nie wpisano nic

}
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 02:48