Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] jaki warunek zeby po kolei sprawdzilo?
lnn
post 22.03.2009, 15:09:07
Post #1





Grupa: Zarejestrowani
Postów: 361
Pomógł: 11
Dołączył: 17.12.2008
Skąd: LU

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


mam problem poniewaz chce zeby sprawdzalo po kolei kazde pole czy zostalo wypelnione zanim wysle formularz i tak oto chce zeby najpierw sprawdzalo czy wszystkie zostaly wypelnione, nastepnie chce kazde po kolei sprawdzic czy jest wypelnione a jak nie to zeby wyswietlalo "pole imie i nazwisko nie jest wypelnione", ale jak zrobilem w taki sposob jak ponizej to jak nieuzupelnie jakiegos pola to wyskakuje ze wszystkie nieuzupelnione ;/ dzialalo mi to przy 2 polach a przy 3 i wiecej juz nie chce

  1. <?php
  2. $recipient="adres@nadawcy.ch"; //adres odbiorcy
  3. $subject= "wiadomosc ze strony www"; //temat wiadomosci
  4. $msg= $_POST["msg"]; //tresc wiadomosci
  5. $sender= 'From:' .$_POST["name"]. '<' .$_POST["from"]. '>'; //nadawca
  6.  
  7. if ($name=="" && $from=="" && $tel=="" && $msg=="") {
  8.    echo "Wszystkie pola nie zostaly wypelnione!<br />";  
  9.    echo "<a href=java script:history.back()>&laquo;wróć i popraw</a>";
  10.    }
  11. elseif ($name<"") {
  12.        echo "Pole \"imie i nazwisko\" nie zostalo wypelnione!<br />";
  13.        echo "<a href=java script:history.back()>&laquo;wróć i popraw</a>";
  14.    }
  15.    elseif ($from<"") {
  16.        echo "Pole \"e-mail nadawcy\" nie zostało wypełnione!<br />";
  17.        echo "<a href=java script:history.back()>&laquo;wróć i popraw</a>";
  18.    }
  19.    elseif ($tel<"") {
  20.        echo "Pole \"telefon kontaktowy\" nie zostało wypełnione! <br />";
  21.        echo "<a href=java script:history.back()>&laquo;wróć i popraw</a>";
  22.    }
  23.    elseif ($msg<"") {
  24.        echo "Pole \"tresc wiadomosci\" nie zostało wypełnione! <br />";
  25.        echo "<a href=java script:history.back()>&laquo;wróć i popraw</a>";
  26.    }
  27.    elseif ($name>"" && $from>"" && $tel>"" && $msg>"") {
  28.        mail($recipient, $subject, $msg, $sender);
  29.        echo "Wiadomosc zostala wyslana!";
  30.        echo "<a href=java script:history.back()>Zamknij okno [domyslnie narazie back]</a>";
  31.    }
  32. ?>

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  3.  
  4. <meta http-equiv="content-type" content="text/html; charset=iso-8859-2" />
  5. <title>Formularz kontaktowy</title>
  6. </head>
  7.  
  8. <form action="email.php" method="post">
  9. imię i nazwisko:<br />
  10. <input type="text" name="name" /><br />
  11. e-mail nadawcy:<br />
  12. <input type="text" name="from" /><br />
  13. telefon kontaktowy:<br />
  14. <input type="text" name="tel" /><br />
  15. treść wiadomości:<br />
  16. <textarea rows="5" name="msg" cols="20"></textarea><br />
  17. <input type="submit" value="dodaj" />
  18. </form>
  19. </body>
  20. </html>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 16)
KCG
post 22.03.2009, 15:23:34
Post #2





Grupa: Zarejestrowani
Postów: 449
Pomógł: 4
Dołączył: 1.12.2006

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


Jakoś dziwnie to sprawdzasz, może spróbuj z empty() lub strlen() smile.gif


--------------------
9242594 - zaczynasz? jak mogę, to pomogę :D /podstawowa znajomość php :P /
"to pomoc zawsze będzie gestem pięknym, zaliczana do tych teraz rzadko spotykanych..."
Go to the top of the page
+Quote Post
lnn
post 22.03.2009, 15:25:17
Post #3





Grupa: Zarejestrowani
Postów: 361
Pomógł: 11
Dołączył: 17.12.2008
Skąd: LU

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


Cytat(KCG @ 22.03.2009, 15:23:34 ) *
Jakoś dziwnie to sprawdzasz, może spróbuj z empty() lub strlen() smile.gif

ok poczytam manuala moze dojde do czegos ;-)
bazowalem na jakims przykladzie z ksiazki co do sprawdzania czegos podobnego winksmiley.jpg)
Go to the top of the page
+Quote Post
thomson89
post 22.03.2009, 15:32:16
Post #4





Grupa: Zarejestrowani
Postów: 1 178
Pomógł: 51
Dołączył: 7.01.2009
Skąd: Gdańsk

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


w jakiej książcę pamietam była funkcja która sprawdzała całą tablice post i porównywała za pomocą while z kluczem

zamiast < dawaj <= lub po prostu ==, bo nie sądzę pustka była mniejsza od pustki - jak jest pusta to pusta


--------------------
Sklep 70%
Go to the top of the page
+Quote Post
lnn
post 22.03.2009, 15:42:55
Post #5





Grupa: Zarejestrowani
Postów: 361
Pomógł: 11
Dołączył: 17.12.2008
Skąd: LU

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


Cytat(thomson89 @ 22.03.2009, 15:32:16 ) *
w jakiej książcę pamietam była funkcja która sprawdzała całą tablice post i porównywała za pomocą while z kluczem

zamiast < dawaj <= lub po prostu ==, bo nie sądzę pustka była mniejsza od pustki - jak jest pusta to pusta


ksiazka chyba to byla PHP5, Apache i MySQL. Od podstaw .. ale calej jeszcze nie przejrzalem, bo ma chyba z 800 stron ;D zatem moglem cos przeoczyc zwlaszcza ze mam ja od 2 dni ;-)) i jestem poczatkujacy...

jeszcze jedno.. empty() - sprawdza czy np zmienna nie jest pusta a strlen() - sprawdza dlugosc zmiennej?
czyli ze np jakbym zadeklarowal sobie ze np.
  1. <?php
  2. if (strlen($jakasZmienna) >=2)
  3. ?>

to mi zwroci false jesli bedzie mniejsze i nie wykona polecenia zadeklarowanego w warunku? tak to dziala? dobrze mysle? winksmiley.jpg
Go to the top of the page
+Quote Post
thomson89
post 22.03.2009, 15:51:13
Post #6





Grupa: Zarejestrowani
Postów: 1 178
Pomógł: 51
Dołączył: 7.01.2009
Skąd: Gdańsk

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


Źle myślisz. If, nie da ci false. Strlen da ci false jak $zmienna = '';. Ale w tym wypadku osiagniesz zamierzony efekt.

U ciebie: jak strlen zwróci wynik mniejszy lub równy 2, wykonaj to co następuje {...}

Można też ewentualnie dać:
  1. <?php
  2. if (empty($jakaszmienna) || strlen($jakaszmienna) >=2 ){ ... }
  3. ?>


--------------------
Sklep 70%
Go to the top of the page
+Quote Post
decha-design
post 22.03.2009, 15:56:20
Post #7





Grupa: Zarejestrowani
Postów: 415
Pomógł: 46
Dołączył: 26.05.2007
Skąd: Sandomierz

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


Cytat(thomson89 @ 22.03.2009, 15:51:13 ) *
U ciebie: jak strlen zwróci wynik mniejszy lub równy 2, wykonaj to co następuje {...}


większy lub równy o.O'


--------------------
Go to the top of the page
+Quote Post
lnn
post 22.03.2009, 16:26:13
Post #8





Grupa: Zarejestrowani
Postów: 361
Pomógł: 11
Dołączył: 17.12.2008
Skąd: LU

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


Cytat(thomson89 @ 22.03.2009, 15:51:13 ) *
Źle myślisz. If, nie da ci false. Strlen da ci false jak $zmienna = '';. Ale w tym wypadku osiagniesz zamierzony efekt.

U ciebie: jak strlen zwróci wynik mniejszy lub równy 2, wykonaj to co następuje {...}

Można też ewentualnie dać:
  1. <?php
  2. if (empty($jakaszmienna) || strlen($jakaszmienna) >=2 ){ ... }
  3. ?>


tzn mniej wiecej o to pytalem tylko sie zle wyrazilem winksmiley.jpg ale dzieki smile.gif

a jeszcze jedno pytanie czy moge podac kilka argumentow zeby mi sprawdzalo na raz np:
strlen($pierwszazmienna, $drugazmienna, $trzeciazmienna)>=1 (to samo w przypadku empty() )
bo cos w ten sposob nie dziala ;/ jakich operatorow uzyc: srednik, przecinek, a moze &&

z gory dzieki za wskazowki i zapodam caly kod do oceny jak juz wyjdzie winksmiley.jpg bo moze cos nadmiernie robie co moznaby skrocic jakos winksmiley.jpg

Ten post edytował lnn 22.03.2009, 16:27:21
Go to the top of the page
+Quote Post
lnn
post 22.03.2009, 16:55:29
Post #9





Grupa: Zarejestrowani
Postów: 361
Pomógł: 11
Dołączył: 17.12.2008
Skąd: LU

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


czy za pomoca strl() oraz empty() mozna sprawdzac kilka zmiennych??
a jesli tak to w jakiej postaci zapisywac czy srednik, przecinek czy moze && a moze jakos inaczej? bo cos mi nie smiga winksmiley.jpg
do tej pory robilem cos takiego:
if (strlen($zmienna)>=2 && strlen($zmienna2)>=2) {}

ale moze da sie to jakos uproscic?
Powód edycji: [erix] połączyłem wątki
Go to the top of the page
+Quote Post
wookieb
post 22.03.2009, 16:57:44
Post #10





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Cytat(lnn @ 22.03.2009, 16:55:29 ) *
ale moze da sie to jakos uproscic?

Nie. Ale ja ci mogę uprościć wszystkie odpowiedzi które możliwie pojawią się w tym temacie.
http://pl.php.net/empty Wszystko pisze co chcesz wiedziec.


--------------------
Go to the top of the page
+Quote Post
lnn
post 22.03.2009, 17:06:06
Post #11





Grupa: Zarejestrowani
Postów: 361
Pomógł: 11
Dołączył: 17.12.2008
Skąd: LU

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


kurde, no wlasnie czytalem manuala i sie zastanawialem czy jest mozliwe sprawdzenie kilku na raz winksmiley.jpg ale dzieki!
Go to the top of the page
+Quote Post
Pilsener
post 22.03.2009, 17:09:39
Post #12





Grupa: Zarejestrowani
Postów: 1 590
Pomógł: 185
Dołączył: 19.04.2006
Skąd: Gdańsk

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


Bo dziś używa się na szeroką skalę tablic - zmienne trzymaj w tablicy, wtedy możesz wykonać daną funkcję na wszystkich elementach tablicy, na części tablicy lub elementach spełniających określone kryteria.
Go to the top of the page
+Quote Post
lnn
post 22.03.2009, 17:20:57
Post #13





Grupa: Zarejestrowani
Postów: 361
Pomógł: 11
Dołączył: 17.12.2008
Skąd: LU

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


Cytat(Pilsener @ 22.03.2009, 17:09:39 ) *
Bo dziś używa się na szeroką skalę tablic - zmienne trzymaj w tablicy, wtedy możesz wykonać daną funkcję na wszystkich elementach tablicy, na części tablicy lub elementach spełniających określone kryteria.

ok poczytam o tym bo jestem poczatkujacy winksmiley.jpg narazie proboje zrobic prosty formularz email z walidacja winksmiley.jpg
Go to the top of the page
+Quote Post
KCG
post 22.03.2009, 18:00:48
Post #14





Grupa: Zarejestrowani
Postów: 449
Pomógł: 4
Dołączył: 1.12.2006

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


Nie, w tej funkcji nie możesz podać tak argumentów.
Musisz pisać strlen($zm1) > 1) || strlen($zm2) > 1 itd.


--------------------
9242594 - zaczynasz? jak mogę, to pomogę :D /podstawowa znajomość php :P /
"to pomoc zawsze będzie gestem pięknym, zaliczana do tych teraz rzadko spotykanych..."
Go to the top of the page
+Quote Post
lnn
post 22.03.2009, 19:00:51
Post #15





Grupa: Zarejestrowani
Postów: 361
Pomógł: 11
Dołączył: 17.12.2008
Skąd: LU

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


zrobilem cos takiego i poki cos dziala, chcialbym jeszcze dodac walidacje mejla i nr tel winksmiley.jpg
  1. <?php
  2. $recipient=&#092;"imejl@odb.pl\";
  3. $subject= &#092;"wiadomosc ze strony www\";
  4. $msg= $_POST[&#092;"msg\"];
  5. $name= $_POST[&#092;"name\"];
  6. $from= $_POST[&#092;"from\"];
  7. $tel= $_POST[&#092;"tel\"];
  8. $sender= 'From:' .$_POST[&#092;"name\"]. '<' .$_POST[\"from\"]. '>';  
  9.  
  10.  
  11. if (empty($name) || strlen($name)<=2) {
  12.    echo &#092;"pole name jest puste lub zbyt krotkie\";
  13. } elseif (empty($from) || strlen($from)<=2) {
  14.    echo &#092;"pole od jest puste lub zbyt krotkie\";
  15. } elseif (empty($tel) || strlen($tel)<=2) {
  16.    echo &#092;"pole tel jest puste lub za krotkie\";
  17. } elseif (empty($msg) || strlen($msg)<=2) {
  18.    echo &#092;"pole wiadomosci jest puste lub za krotkie\";
  19. } elseif (strlen($name)>=3 && strlen($from)>=3 && strlen ($tel)>=3 && strlen($msg)>=3) {
  20.    echo &#092;"mail zostal wyslany\";
  21.    mail($recipient, $subject, $msg, $sender);
  22.     }
  23. ?>


Ten post edytował lnn 22.03.2009, 19:01:42
Go to the top of the page
+Quote Post
decha-design
post 22.03.2009, 19:14:47
Post #16





Grupa: Zarejestrowani
Postów: 415
Pomógł: 46
Dołączył: 26.05.2007
Skąd: Sandomierz

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


A po co piszesz to samo w dwóch tematach? To nazywa się cross-posting ... =s


--------------------
Go to the top of the page
+Quote Post
cojack
post 22.03.2009, 19:36:45
Post #17





Grupa: Zarejestrowani
Postów: 898
Pomógł: 80
Dołączył: 31.05.2008

Ostrzeżenie: (20%)
X----


Żeby sprawdzić parę zmiennych trzeba wiedzieć co się chce uzyskać.

Czyli:

&& - koniunkcja, i
|| - alternatywa, lub

np if($a>2 && $b<3 && ... itd itp)
I czasami nie warto używać empty czy isset, ponieważ się psują, wystarczy czasami rzucić okiem na bugliste z php.net i od razu widzimy że lepiej sprawdzać to w sposób if($a == '')... tarata smile.gif


--------------------
cojack blog - mój blog (na jakiś czas off).
"jak czegoś nie wiem, to nie myślę że wiem" - moja domena
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 - 08:26