Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Formularz czasami przychodzi całkiem pusty
maniana7
post
Post #1





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 19.10.2017

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


Witam.
Mam formularz wysyłany za pomocą skryptu.php na mejla. Wszystko działało ok.
W ostatnich tygodniach coraz częściej zamiast wypełnionego formularza przychodzi formularz całkowicie pusty tj. wszystkie pola są puste a wiem od ludzi wysyłających formularz, że został wypełniony. Są tam checkobx-y i input-y.
Żeby móc wysłać formularz trzeba wypełnić wymagane pola (required) więc teoretycznie bez tego nie powinien zostać wysłany a dochodzi.
Na 8 wypełnionych prawidłowo przychodzą 2 całkiem puste.
Gdzie może leżeć tego przyczyna?
Pozdrawiam

Ten post edytował maniana7 13.05.2019, 15:44:27
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
maniana7
post
Post #2





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 19.10.2017

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


Działa piknie! Trzeba było z pracy w końcu wyjść (IMG:style_emoticons/default/smile.gif) W domu naniosłem poprawki, kilka wrzutów na ftp-a, poprawek i w końcu śmiga. Dzięki jeszcze raz za pomoc.
Trochę chamska ta strona z komunikatami o niewypełnionych polach co się pokazuje po kliku w submit-a. Cała biała jak śmierć i tylko:

Znaleziono błędy:
Wypełnij pole: imię
Wypełnij pole: miejscowość

No ale ważne, że działa.
Aha, zapomniałem: niby działa ale nadal można walnąć w pola głupoty typu: ... .. lub . . "Spacjowanie" faktycznie wyrugowane.
No ale przynajmniej będę wiedzieć, że TAJEMNICZE COŚ nie czyści mi wypełnionych pól po drodze bo coś w tych polach musi przyjść.
W kodzie pocztowym zostawiłem: pattern="^[0-9]{2}-[0-9]{3}$" to tam bzdety nie przejdą, przynajmniej tak mi się wydaje.

Ten post edytował maniana7 15.05.2019, 18:29:05
Go to the top of the page
+Quote Post
dublinka
post
Post #3





Grupa: Zarejestrowani
Postów: 594
Pomógł: 66
Dołączył: 22.02.2008
Skąd: Dublin

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


Cytat(maniana7 @ 15.05.2019, 19:06:43 ) *
Działa piknie! Trzeba było z pracy w końcu wyjść (IMG:style_emoticons/default/smile.gif) W domu naniosłem poprawki, kilka wrzutów na ftp-a, poprawek i w końcu śmiga. Dzięki jeszcze raz za pomoc.
Trochę chamska ta strona z komunikatami o niewypełnionych polach co się pokazuje po kliku w submit-a. Cała biała jak śmierć i tylko:

Znaleziono błędy:
Wypełnij pole: imię
Wypełnij pole: miejscowość



To sobie te część sformatuj w tagach html.

Np:

  1. if(isset($match))
  2. {
  3. print "<body style=\"background-color: lightblue\"><div style=\"background-color: darkblue; color:white; padding: 10px\">";
  4. print 'Znaleziono błędy: <br>';
  5.  
  6. for($i=0; $i<count($returnNames); $i++)
  7. {
  8.  
  9. print ("<b>" . $returnNames[$i] . '</b><br>');
  10.  
  11. }
  12.  
  13. print "<a style=\"color: gold\" href=java script:history.go(-1)>Wstecz</a></div></body>"; // forum dzieli string javascript na dwa czlony. Polacz to w jedno
  14.  
  15.  
  16. }


Cytat(maniana7 @ 15.05.2019, 19:06:43 ) *
No ale ważne, że działa.
Aha, zapomniałem: niby działa ale nadal można walnąć w pola głupoty typu: ... .. lub . . "Spacjowanie" faktycznie wyrugowane.
No ale przynajmniej będę wiedzieć, że TAJEMNICZE COŚ nie czyści mi wypełnionych pól po drodze bo coś w tych polach musi przyjść.


To ze mozna wpisac nie znaczy ze to przejdzie.


Cytat(maniana7 @ 15.05.2019, 19:06:43 ) *
W kodzie pocztowym zostawiłem: pattern="^[0-9]{2}-[0-9]{3}$" to tam bzdety nie przejdą, przynajmniej tak mi się wydaje.


Wszystkie pola ktore przesylasz tzn wartosci tych pól mozesz swobodnie (po tym co dałem) filtrowac i sprawdzac względem wymagań jakie tam chcesz w tym adres @
Przykładowo:

  1. $email = "jakis_email@costam..pl"; // bledny adres z dwoma kropkami
  2.  
  3. if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
  4. exit('Błędny adres email');
  5. }
  6. print 'dalsza czesc strony do ew. filtrowania';
  7. // tua jdajesz kod ktory ma sie dalej wykonywac


Ten post edytował dublinka 15.05.2019, 19:16:26
Go to the top of the page
+Quote Post
maniana7
post
Post #4





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 19.10.2017

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


Cytat(dublinka @ 15.05.2019, 19:57:32 ) *
To ze mozna wpisac nie znaczy ze to przejdzie.


Tzn?(IMG:style_emoticons/default/questionmark.gif) Wpisuję co chcę i przechodzi. Alert o znalezionych błędach jest tylko gdy pole jest puste/wyspacjowane. Wystarczy walnąć w dowolne pole (oprócz rzecz jasna kodu pocztowego bo to zabezpieczyłem przed głupotami) kropkę i idzie formularz na mejla w stylu:
Imię: . . ..
Nazwisko: 8-)
Kod: 00-100
Miejscowość: tralala ..

Ten post edytował maniana7 15.05.2019, 19:57:33
Go to the top of the page
+Quote Post
dublinka
post
Post #5





Grupa: Zarejestrowani
Postów: 594
Pomógł: 66
Dołączył: 22.02.2008
Skąd: Dublin

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


Cytat(maniana7 @ 15.05.2019, 20:56:30 ) *
Tzn?(IMG:style_emoticons/default/questionmark.gif) Wpisuję co chcę i przechodzi. Alert o znalezionych błędach jest tylko gdy pole jest puste/wyspacjowane. Wystarczy walnąć w dowolne pole (oprócz rzecz jasna kodu pocztowego bo to zabezpieczyłem przed głupotami) kropkę i idzie formularz na mejla w stylu:
Imię: . . ..
Nazwisko: 8-)
Kod: 00-100
Miejscowość: tralala ..

Kropka to nie spacja czy tabulator. To są tzw białe znaki. Reszta wpisywana z klawiatury jest normalnym znakiem. Miales problem z pustymi wartosciami ktore byly przesylane na mejla a to czy ktos Ci wpisze w pole MIASTO = blablabla to juz od tego sie nie uchronisz bo musialbys miec jakas tablice wszystkich miast, miejscowosci, wsi etc i pozwlaac tylko z tych.
Jesli chcesz filtrowac względem dozwolonych znaków to trzeba filtrowac po tym przykladzie ktory podalem. On sprawdza CZY COS ZOSTAŁO WYSŁANE lub jak kto woli czy POLA FORMULARZA NIE ZOSTAŁY WYSŁANE PUSTE.
Do pustych nie nalezą kropki czy inne znaki. Puste sa to białe znaki. Jesli przyklad nie wychwyci nic znaczy sie ze pola formularza zostaly wypelnione.


To przykład ktory sprawdzi czy pole zawiera TYLKO male litery i liczby - reszta jest niedozwolona

  1. <?php
  2. $co = "login---";
  3. if(preg_match('/[^0-9a-z]/i',$co))
  4. {
  5. exit('Wystepuja nieprawidlowe znaki');
  6. }
  7.  
  8. print 'Dalsza czesc strony jesli ok';
  9. ?>


W podobny sposob mozesz dodawac znaki ktore moga byc akceptowane jak rowniez dlugosc minimalna i maksymalna.
W tym przypadku akceptowane sa:
Male litery
Liczby
Znak podkreslenia
Kropka
Minimalna dlugosc 6 a max 15 znakow

  1. <?php
  2. $co = "logi99._-";
  3. if(!preg_match("/^[a-z0-9_.]{6,15}$/", $co))
  4. {
  5. exit('Wystepuja nieprawidlowe znaki. Minimalna liczba znakow to 6 a max to 15');
  6. }
  7.  
  8. print 'Dalsza czesc strony jesli ok';
  9. ?>


Ten post edytował dublinka 16.05.2019, 07:45:23
Go to the top of the page
+Quote Post
Pyton_000
post
Post #6





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


Cytat(dublinka @ 15.05.2019, 21:42:57 ) *
Kropka to nie spacja czy tabulator. To są tzw białe znaki. Reszta wpisywana z klawiatury jest normalnym znakiem. Miales problem z pustymi wartosciami ktore byly przesylane na mejla a to czy ktos Ci wpisze w pole MIASTO = blablabla to juz od tego sie nie uchronisz bo musialbys miec jakas tablice wszystkich miast, miejscowosci, wsi etc i pozwlaac tylko z tych.
Jesli chcesz filtrowac względem dozwolonych znaków to trzeba filtrowac po tym przykladzie ktory podalem. On sprawdza CZY COS ZOSTAŁO WYSŁANE lub jak kto woli czy POLA FORMULARZA NIE ZOSTAŁY WYSŁANE PUSTE.
Do pustych nie nalezą kropki czy inne znaki. Puste sa to białe znaki. Jesli przyklad nie wychwyci nic znaczy sie ze pola formularza zostaly wypelnione.


To przykład ktory sprawdzi czy pole zawiera TYLKO male litery i liczby - reszta jest niedozwolona

  1. <?php
  2. $co = "login---";
  3. if(preg_match('/[^0-9a-z]/i',$co))
  4. {
  5. exit('Wystepuja nieprawidlowe znaki');
  6. }
  7.  
  8. print 'Dalsza czesc strony jesli ok';
  9. ?>


W podobny sposob mozesz dodawac znaki ktore moga byc akceptowane jak rowniez dlugosc minimalna i maksymalna.
W tym przypadku akceptowane sa:
Male litery
Liczby
Znak podkreslenia
Kropka
Minimalna dlugosc 6 a max 15 znakow

  1. <?php
  2. $co = "logi99._-";
  3. if(!preg_match("/^[a-z0-9_.]{6,15}$/", $co))
  4. {
  5. exit('Wystepuja nieprawidlowe znaki. Minimalna liczba znakow to 6 a max to 15');
  6. }
  7.  
  8. print 'Dalsza czesc strony jesli ok';
  9. ?>

Uściślając Twój 1-szy regexp akceptuje duże i małe litery + cyfry (operator `i`)
Go to the top of the page
+Quote Post
dublinka
post
Post #7





Grupa: Zarejestrowani
Postów: 594
Pomógł: 66
Dołączył: 22.02.2008
Skąd: Dublin

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


Cytat(Pyton_000 @ 16.05.2019, 10:30:03 ) *
Uściślając Twój 1-szy regexp akceptuje duże i małe litery + cyfry (operator `i`)

  1. $co = "logini77";
  2. if(!preg_match('/^[a-z0-9]+$/', $co))
  3. {
  4. print 'blad';
  5. } else {
  6. print 'ok';
  7. }


Cytat(maniana7 @ 16.05.2019, 14:22:26 ) *
Tak, zostaje kwestia filtrowania pól, o której kilka wpisów tu jest ale to nie jest teraz najpilniejsza sprawa. Wiesz co było priorytetem a filtrowanie inputów wyszło przy okazji. To delikatna sprawa: tyle wyjątków i różnych kombinacji przy każdym polu, nie wspominając, że ludzie często walą w form-ie wszystko jak leci z małej litery (co dla mnie nie jest żadnym problemem). Niech mają luz. Jak 1 na 100 będzie chciał wpisać bzdety nie widzę problemu - niech sobie ulży, jego sprawa.

Do tego sluza wyrazenia regularne. Cala sila w nich jest taka ze nie trzeba wlasnie miec naście kombinacji - jedna regula i tyle.
Go to the top of the page
+Quote Post

Posty w temacie
- maniana7   Formularz czasami przychodzi całkiem pusty   13.05.2019, 14:55:04
- - dublinka   Wszystkie przychodza puste zawsze ?   13.05.2019, 16:51:50
- - maniana7   Problem dotyczy około 15-20% formularzy, które doc...   13.05.2019, 19:03:43
- - Tomplus   Sprawdź z jakich przeglądarek są wysyłane te puste...   13.05.2019, 19:25:13
- - adbacz   Zasadnicze pytanie - kiedy robisz walidację wprowa...   13.05.2019, 19:31:36
- - maniana7   Nie mam walidacji pól Sorki, mogłem o tym wspomni...   13.05.2019, 19:45:54
- - adbacz   Nie sądzę by to była wina przeglądarki jakkolwiek....   13.05.2019, 20:02:31
- - dublinka   Cytat(maniana7 @ 13.05.2019, 20:45:54...   13.05.2019, 20:59:03
- - maniana7   Będzie off top ale czy pomoże ktoś z modyfikacją s...   14.05.2019, 10:09:51
- - dublinka   Mozesz sprawdzac kazde pole warunkami poprzez: [PH...   15.05.2019, 11:08:24
- - Pyton_000   Cytat$submit = @$_POST['submit']...   15.05.2019, 12:37:21
- - dublinka   Cytat(Pyton_000 @ 15.05.2019, 13:37:2...   15.05.2019, 13:17:35
|- - Pyton_000   Cytat(dublinka @ 15.05.2019, 14:17:35...   15.05.2019, 13:47:43
- - maniana7   Dzięki za propozycję. Ta cała walidacja trochę mni...   15.05.2019, 13:26:46
- - nospor   CytatCo Ty nie powiesz. Anulowanie wyswietlenia w ...   15.05.2019, 13:40:12
|- - dublinka   Cytat(nospor @ 15.05.2019, 14:40:12 )...   15.05.2019, 13:45:49
- - nospor   [PHP] pobierz, plaintext $submit = @$_POST['su...   15.05.2019, 13:46:05
|- - dublinka   Cytat(nospor @ 15.05.2019, 14:46:05 )...   15.05.2019, 13:48:21
- - maniana7   Dajcie spokój. Po cholerę te przepychanki i dogryz...   15.05.2019, 13:50:02
|- - dublinka   Cytat(maniana7 @ 15.05.2019, 14:50:02...   15.05.2019, 13:54:19
- - nospor   @maniana juz ci pisalem ze takie zabepzieczenia sa...   15.05.2019, 13:51:23
|- - maniana7   Cytat(nospor @ 15.05.2019, 14:51:23 )...   15.05.2019, 14:22:41
- - nospor   @dublinka akurat te parametry nie sa obslugiwane p...   15.05.2019, 14:01:17
- - dublinka   To co masz czyli: [PHP] pobierz, plaintext $do = ...   15.05.2019, 14:06:33
- - nospor   CytatMnie ogolnie chodzilo o blokowanie przez js Z...   15.05.2019, 14:11:31
|- - dublinka   Cytat(nospor @ 15.05.2019, 15:11:31 )...   15.05.2019, 15:06:28
- - nospor   CytatO pattern="^[0-9]{2}-[0-9]{3}$...   15.05.2019, 14:28:11
|- - maniana7   Cytat(nospor @ 15.05.2019, 15:28:11 )...   15.05.2019, 14:36:29
|- - jaca121212   Cytat(maniana7 @ 15.05.2019, 15:36:29...   15.05.2019, 15:10:26
- - maniana7   O Jezusiczku... racja, przecinek A i jeszcze mus...   15.05.2019, 15:16:44
|- - dublinka   Cytat(maniana7 @ 15.05.2019, 16:16:44...   15.05.2019, 15:20:46
- - maniana7   Odnośnie buttona WYŚLIJ to mam w htmlu coś takiego...   15.05.2019, 15:36:30
|- - dublinka   Cytat(maniana7 @ 15.05.2019, 16:36:30...   15.05.2019, 16:17:17
- - maniana7   Działa piknie! Trzeba było z pracy w końcu wyj...   15.05.2019, 18:06:43
|- - dublinka   Cytat(maniana7 @ 15.05.2019, 19:06:43...   15.05.2019, 18:57:32
|- - maniana7   Cytat(dublinka @ 15.05.2019, 19:57:32...   15.05.2019, 19:56:30
|- - dublinka   Cytat(maniana7 @ 15.05.2019, 20:56:30...   15.05.2019, 20:42:57
|- - Pyton_000   Cytat(dublinka @ 15.05.2019, 21:42:57...   16.05.2019, 09:30:03
|- - dublinka   Cytat(Pyton_000 @ 16.05.2019, 10:30:0...   16.05.2019, 13:47:19
- - maniana7   A jest jakiś sposób na umieszczenie na tej "s...   15.05.2019, 19:46:16
|- - dublinka   Cytat(maniana7 @ 15.05.2019, 20:46:16...   15.05.2019, 19:54:59
- - maniana7   Dzięki. Wezmę się za to ale nie dziś. Wracając do...   15.05.2019, 21:45:50
- - dublinka   Ty chyba nie czytasz tego co sie pisze. Dalem kom...   16.05.2019, 05:56:55
|- - maniana7   Cytat(dublinka @ 16.05.2019, 06:56:55...   16.05.2019, 11:32:22
- - nospor   Pokaz aktualny kod. Byloby rowniez BARDZO milo ja...   16.05.2019, 11:37:29
- - maniana7   [PHP] pobierz, plaintext <?php   if...   16.05.2019, 11:45:31
- - nospor   1) w kodzie nadal masz telefon w tablicy wiec nie ...   16.05.2019, 11:51:08
- - maniana7   Zapomniałem usunąć telefon, sorki. Jasne, że go ta...   16.05.2019, 11:53:49
- - dublinka   Cytat(maniana7 @ 16.05.2019, 12:53:49...   16.05.2019, 12:45:52
- - maniana7   Tak, zostaje kwestia filtrowania pól, o której kil...   16.05.2019, 13:22:26
- - maniana7   Dodam, że złapałem kontakt z gościem, który jakiś ...   16.05.2019, 19:06:19
- - dublinka   Cytat(maniana7 @ 16.05.2019, 20:06:19...   16.05.2019, 21:13:47


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

 



RSS Aktualny czas: 4.10.2025 - 17:35