Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Sprawdzenie na zawartość zmiennej
castagir
post 27.11.2014, 18:31:16
Post #1





Grupa: Zarejestrowani
Postów: 146
Pomógł: 3
Dołączył: 28.10.2014

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


Witam

Chciałbym się dowiedzieć jak stworzyć funkcję sprawdzającą czy do formularza zostały wpisane dane. Przede wszystkim chodzi mi o to jak wynik obliczenia funkcji zawrzeć w obecnej zmiennej lub ewentualnie stworzyć nową funkcję jeśli np zamierzony wynik jest dla mnie pozytywny i chciałbym go użyć w dalszym skrypcie.


Póki co stworzyłem takie funkcje. Jedna jest na podstawie funkcji z książki lecz nie działa.
  1. // funkcja sprawdzająca, czy formularz został wypełniony
  2. function wyp_formularz($zmienne_formularza) {
  3. foreach ($zmienne_formularza as $klucz => $wartosc) {
  4. if ((!isset($klucz)) || ($wartosc == '')) {
  5. return false;
  6. }
  7. }
  8. return true;
  9. }
  10. // sprawdzenie, czy została wpisana nazwa witryny
  11. function spr_domena($nwit) {
  12. if ($nwit == '') {
  13. return true;
  14. echo 'Brak wpisanej nazwy witryny';
  15. } else {
  16. return false;
  17. }
  18. }
  19. // sprawdzenie poprawności nazwy witryny
  20. function prawid_domena($nwit) {
  21. if (ereg('www\.[a-zA-Z0-9_\.\-]+\.^)+$'. $nwit))
  22. return true;
  23. } else {
  24. return $nwit;
  25. }
  26. }
  27. // sprawdzenie poprawności adresu email
  28. function prawid_email($eawit) {
  29. if (ereg('^[a-zA-Z0-9_\.\-]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$'. $eawit)) {
  30. return true;
  31. } else {
  32. return false;
  33. }
  34. }


Pozdrawiam
Go to the top of the page
+Quote Post
ctom
post 27.11.2014, 20:23:58
Post #2





Grupa: Zarejestrowani
Postów: 321
Pomógł: 55
Dołączył: 19.04.2009

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


  1. // funkcja sprawdzająca, czy formularz został wypełniony
  2. function wyp_formularz($zmienne_formularza) {
  3. foreach ($zmienne_formularza as $klucz => $wartosc) {
  4. if ((!isset($klucz)) || ($wartosc == '')) {
  5. return false;
  6. }
  7. }
  8. return true;
  9. }


zakładając, ze przekazujesz do funkcji tablice to przeczytaj sobie na głos (linia po linii) co ona robi .


podpowiedź rozwiązania:

  1. $wymaganePola = array('nazwaPola1', '....');
  2.  
  3.  
  4. $polaWypelnione = function($polaFormularza, $wymaganePola) {
  5. // .... tutaj wyprodukuj swój kod (w przypadku "braku wypełnienia" zwróć FALSE)
  6.  
  7. return true;
  8. };
  9.  
  10. // zakładam, że formularz przekazujesz po POST
  11. if( $polaWypelnione($_POST, $wymaganePola) === false ) {echo 'Nie wszystkie wymagane pola zostały wypełnione';}


Ten post edytował ctom 27.11.2014, 20:26:25


--------------------
Polecam MyDevil hosting idealny dla deweloperów
Go to the top of the page
+Quote Post
castagir
post 27.11.2014, 20:56:24
Post #3





Grupa: Zarejestrowani
Postów: 146
Pomógł: 3
Dołączył: 28.10.2014

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


To nadal nic mi nie daje. Akurat właśnie ta funkcja jest z książki. Niestety książka też jak widać jest do nieczego, bo szukałem strony z opisem formularza z którego są brane te '$zmienne_formularza' i jak na złosć jej nigdzie nie ma - rozdział tworzenia formularza rejestrującego po prostu twórca pominął, a niby jest to książka, która za pomocą prostych przykładów ma pomóc nauczyć się tworzyć własne aplikacje php, ale to juz inny temat...

Zacząłem inaczej pisać sprawdzenie tego, czy każde pole w formularzu zostało wypełnione poprawnie. Dla każdego oczekiwanego wyniku zwracam także inną wartość wpisaną w zmienną.


Początkowe zmienne, które mają przypisane wartości za pomocą metody POST powinny być zwykłami ciągami znaków, które wpisuje się w poprzedniej stronie w formularzu.
  1. $nwit = $_POST['nwit'];
  2. $owit = $_POST['owit'];
  3. $eawit = $_POST['eawit'];
  4. $nawit = $_POST['nawit'];
  5. $hawit = $_POST['hawit'];
  6. $phawit = $_POST['phawit'];
  7. $areg = $_POST['areg'];
  8.  
  9. if ($nwit == '') {
  10. return $GLOBALS['w_nwit'] = 'Brak wpisanej nazwy witryny';
  11. } else {
  12. if (ereg('www\.[a-zA-Z0-9_\.\-]+\.^)+$'. $nwit))
  13. return $GLOBALS['w_nwit'] = 'Nazwa witryny została wpisana poprawnie.';
  14. } else {
  15. return $GLOBALS['w_nwit'] = 'Nazwa witryny jest niepoprawna.';
  16. }
  17.  
  18.  
  19. echo $nwit;
  20. echo $w_nwit;


Próbowałem także z 'if' wyciągać nową zmienną, która jest wynikiem sprawdzenia, '$w_nwit', bez wpisywania $GLOBALS, lecz też nie dało żadnych wyników.
Go to the top of the page
+Quote Post
ctom
post 27.11.2014, 21:25:42
Post #4





Grupa: Zarejestrowani
Postów: 321
Pomógł: 55
Dołączył: 19.04.2009

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


podpowiedź rozwiązania [nr 2] :

  1. $wymaganePola = array('nazwaPola1', '....');
  2.  
  3.  
  4. $polaWypelnione = function($polaFormularza, $wymaganePola) {
  5. // .... tutaj wyprodukuj swój kod (w przypadku "braku wypełnienia" zwróć FALSE)
  6. // 1. iteruj po tablicy $wymaganePola ( foreach)
  7. // 2. sprawdź czy istnieje klucz w $polaFormularza o wartości elementu z $wymaganePola ( isset)
  8. // 3. jeżeli istnieje to sprawdź czy wartość nie jest "pusta"
  9. return true;
  10. };
  11.  
  12. // zakładam, że formularz przekazujesz po POST
  13. if( $polaWypelnione($_POST, $wymaganePola) === false ) {echo 'Nie wszystkie wymagane pola zostały wypełnione';}


sprawdzaniem czy dane pola mają prawidłowe wartości zajmiesz się później (jak zapoznasz się np. z tym )


--------------------
Polecam MyDevil hosting idealny dla deweloperów
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: 18.06.2025 - 12:37