Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Wiadomość, gdy nie wszystkie pola zostąły uzupełnione.
Adam Jaworski
post
Post #1





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 15.12.2010

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


Otóż mam takie pytanie.

dajmy na to mamy formularz, co zrobić by można było wpisywać ino cyfry, i jak wcisnę np wyślij, a nie wszystkie pola są zapełnione, wywalało komunikat o tym że nie wszystkie pola zostały uzupełnione.

Próbowałem sam to zrobić, lecz się nie udało ;/

  1. <?php
  2. $do_uzbierania = $_POST['do_uzbierania'];
  3. $datki = $_POST['datki'];
  4. $zostalo_do = $do_uzbierania - $datki;
  5.  
  6. if (empty($do_uzbierania, $datki))
  7. {
  8. echo 'Nie wpisałeś wszystkich warosci'
  9. }
  10. elseif
  11. {
  12. echo '<center><span style="color:green;"><b> Potrzebujemy '.$do_uzbierania.'zł</br> Uzbieraliśmy '.$datki.' zł</br>
  13. Pozostało '.$zostalo_do.'zl</b></span></center>';
  14. }
  15. ?>



Aha, przy okazji można sprawdzić to na
mybbsites.xaa.pl. tam testuje swoje skrypty, a raczej ten jeden skrypt. (to nie reklama, )

Ten post edytował Adam Jaworski 14.02.2011, 16:02:52
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 12)
kadlub
post
Post #2





Grupa: Zarejestrowani
Postów: 548
Pomógł: 105
Dołączył: 4.06.2010

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



if (!empty($do_uzbierania, $datki))
a tak zobacz
Go to the top of the page
+Quote Post
Adam Jaworski
post
Post #3





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 15.12.2010

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


Niestety nie działa, dalej wywala błąd w 6 linii, czyli w tej z

  1. if (!empty($do_uzbierania, $datki))
Go to the top of the page
+Quote Post
kadlub
post
Post #4





Grupa: Zarejestrowani
Postów: 548
Pomógł: 105
Dołączył: 4.06.2010

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


if (empty($do_uzbierania) or empty($datki)){

Ten post edytował kadlub 14.02.2011, 16:11:19
Go to the top of the page
+Quote Post
Adam Jaworski
post
Post #5





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 15.12.2010

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


Ehm, dziwne, teraz mi pisze że mam złą linijkę 11, a tam jest {

  1. <?php
  2. $do_uzbierania = $_POST['do_uzbierania'];
  3. $datki = $_POST['datki'];
  4. $zostalo_do = $do_uzbierania - $datki;
  5.  
  6. if (empty($do_uzbierania) or empty($_POST['$datki']))
  7. {
  8. echo 'Nie wpisałeś wszystkich wartosci';
  9. }
  10. elseif
  11. {
  12. echo '<center><span style="color:green;"><b> Potrzebujemy '.$do_uzbierania.'zł</br> Uzbieraliśmy '.$datki.' zł</br>
  13. Pozostało '.$zostalo_do.'zl</b></span></center>';
  14. }
  15. ?>


Ten post edytował Adam Jaworski 14.02.2011, 16:13:29
Go to the top of the page
+Quote Post
sada
post
Post #6





Grupa: Zarejestrowani
Postów: 302
Pomógł: 24
Dołączył: 6.12.2008

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


spróbuj
if (empty($_POST['do_uzbierania'], $_POST['datki']))


lub


  1. if (empty($_POST['do_uzbierania']) or empty($_POST['$datki']))


Ten post edytował sada 14.02.2011, 16:16:49
Go to the top of the page
+Quote Post
kadlub
post
Post #7





Grupa: Zarejestrowani
Postów: 548
Pomógł: 105
Dołączył: 4.06.2010

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


nie dałeś średnika
Go to the top of the page
+Quote Post
Adam Jaworski
post
Post #8





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 15.12.2010

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


hmm, średnika, ale w 11 linijce, gdzie ten średnik mam daćquestionmark.gif
Go to the top of the page
+Quote Post
kadlub
post
Post #9





Grupa: Zarejestrowani
Postów: 548
Pomógł: 105
Dołączył: 4.06.2010

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


  1. echo 'Nie wpisałeś wszystkich warosci';


tak powinno być
Go to the top of the page
+Quote Post
Adam Jaworski
post
Post #10





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 15.12.2010

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


eh, no i tak jest. Mi chodzi o linijkę 11.
Go to the top of the page
+Quote Post
kadlub
post
Post #11





Grupa: Zarejestrowani
Postów: 548
Pomógł: 105
Dołączył: 4.06.2010

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


daj zamiast elseif samo else
Go to the top of the page
+Quote Post
Adam Jaworski
post
Post #12





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 15.12.2010

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


Działa!!, dziękuje ci bardzo smile.gif. eh, jak będę miał inne pytania, to napisze biggrin.gif. Dostajesz pomógł

Aha, i jeszcze jedno pytanie, zawarte w temacie.
Co zrobić by można było wpisywać lidzby?? chyba ze się nie da:)(

Ten post edytował Adam Jaworski 14.02.2011, 16:22:48
Go to the top of the page
+Quote Post
Prezi2907
post
Post #13





Grupa: Zarejestrowani
Postów: 107
Pomógł: 4
Dołączył: 11.08.2010
Skąd: Inowrocław

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


  1. <?php
  2. $do_uzbierania = $_POST['do_uzbierania'];
  3. $datki = $_POST['datki'];
  4. $zostalo_do = $do_uzbierania - $datki;
  5.  
  6. if (empty($do_uzbierania) || empty($_POST['$datki']))
  7. {
  8. echo 'Nie wpisałeś wszystkich wartosci';
  9. }
  10. else if (!empty($do_uzbierania) && !empty($datki))
  11. {
  12. if (preg_match("^[0-9]+(\,[0-9]{1,2})?$" , $do_uzbierania)) //sprawdzasz czy są same cyfry bez spacji i innych znaków niż "," i dwóch cyfr po przecinku
  13. {
  14. if (preg_match("^[0-9]+(\,[0-9]{1,2})?$" , $datki))
  15. {
  16. echo '<center><span style="color:green;"><b> Potrzebujemy '.$do_uzbierania.'zł</br> Uzbieraliśmy '.$datki.' zł</br>
  17. Pozostało '.$zostalo_do.'zl</b></span></center>';
  18. }
  19. else
  20. {
  21. echo 'W polu datki powinieneś podać same cyfry z maksymalnie dwoma miejscami po przecinku';
  22. }
  23. }
  24. else
  25. {
  26. echo 'W polu do uzbierania powinieneś podać same cyfry z maksymalnie dwoma miejscami po przecinku';
  27. }
  28. }
  29. ?>


Jeżeli się trochę pomylę w tym kodzie to sprawdź sobie coś o wyrażeniach regularnych w PHP. Dla każdego języka się troszkę zmienia ich formula ale sądzę że dobrze wpisałem... Wszystko masz opisane chyba na tyle że ogarniesz... Wklej ten kod i powinno działać dobrze...

Aha i możesz wpaść przy wyrażeniach regularnych w PHP na funkcję ereg() ale nie stosuj jej bo z tego co wyczytałem gdzieś w dokumentacjach przygotowywanych do php 6 ma ta funkcja zniknąć i cała sprawa ma być przełożona na preg_match() .
W php5 zostawiono tą funkcję ponieważ duża część starych skryptów była pisana pod ereg() i nie chcieli wymuszać zmiany tych funkcji na preg_matc() przez programistów w swoich skryptach, no ale to tak na marginesie....

Ten post edytował Prezi2907 14.02.2011, 19:57:36
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 Aktualny czas: 20.08.2025 - 11:16