Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> [PHP]Formularz - zabezpieczenie
gizmo1985
post
Post #1





Grupa: Zarejestrowani
Postów: 48
Pomógł: 1
Dołączył: 19.01.2010

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


Witam
Mam pytanie typu : Jak zabezpieczyć formularz, żeby nie było możliwości wysłania pustych danych ?
Domyślam się, że trzeba sprawdzić jakąś funkcją czy pole tekstowe nie jest pełne ?
Czy się mylę ?

Mój formularz :
  1. Miasto: <input type="text" name="miasto"
  2. value="<?php echo $row['miasto']; ?>"><br>
  3. Wojewodztwo: <input type="text" name="wojewodztwo"
  4. value="<?php echo $row['wojewodztwo']; ?>"><br>
  5. Kod pocztowy: <input type="text" name="kod_pocztowy"
  6. value="<?php echo $row['state']; ?>"><br>
  7. Numer telefonu: <input type="text" name="nt_tel"
  8. value="<?php echo $row['nr_tel']; ?>"><br>
  9. Email: <input type="text" name="email"
  10. value="<?php echo $row['email']; ?>"><br>
Go to the top of the page
+Quote Post
bełdzio
post
Post #2





Grupa: Zarejestrowani
Postów: 690
Pomógł: 81
Dołączył: 6.04.2005
Skąd: Szczecin

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


isset / empty
Go to the top of the page
+Quote Post
pedro84
post
Post #3





Grupa: Nieautoryzowani
Postów: 2 249
Pomógł: 305
Dołączył: 2.10.2006

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


  1. // Analogicznie dla każdego pola, w pętli czy osobo, to już Twoja decyzja
  2. if(empty($_POST['miasto'] {
  3. echo 'Puste pole: miasto';
  4. } else {
  5. // formularz zwalidowany, akcja
  6. }


Ten post edytował pedro84 23.01.2010, 18:07:31
Go to the top of the page
+Quote Post
elmozaur
post
Post #4





Grupa: Zarejestrowani
Postów: 518
Pomógł: 18
Dołączył: 21.07.2008

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


lepiej zrobic po stronie klienta za pomoca JS.
dzieki temu jeszcze przed wyslaniem formularz moze byc sprawdzony
Go to the top of the page
+Quote Post
evolucja
post
Post #5





Grupa: Zarejestrowani
Postów: 362
Pomógł: 27
Dołączył: 14.09.2009

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


Weź tak nie mów po potem zapomni o sprawdzeniu tego po stronie serwera (IMG:style_emoticons/default/smile.gif) Walidacja za pomocą JS to tylko dodatek...
Go to the top of the page
+Quote Post
gizmo1985
post
Post #6





Grupa: Zarejestrowani
Postów: 48
Pomógł: 1
Dołączył: 19.01.2010

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


Generalnie jakbym umiał JS, to nie bawiłbym się w takie pierdołki (IMG:style_emoticons/default/biggrin.gif)

A takie pytanie jeszcze mam, jak zrobić takie cóś, żeby w momencie nie wpisania nic w pole, nic nie zostało wysłane ...
W sensie przy aktualizacji, żeby nie zapisywało mi pustej wartości w bazie (IMG:style_emoticons/default/winksmiley.jpg)

Go to the top of the page
+Quote Post
elmozaur
post
Post #7





Grupa: Zarejestrowani
Postów: 518
Pomógł: 18
Dołączył: 21.07.2008

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


Cytat(evolucja @ 23.01.2010, 18:26:16 ) *
Weź tak nie mów po potem zapomni o sprawdzeniu tego po stronie serwera (IMG:style_emoticons/default/smile.gif) Walidacja za pomocą JS to tylko dodatek...


O a to ciekawe teraz to ja tez jestem ciekaw dlaczego tak myslisz ?
Zawsze myslalem tak:
to czy pola sa puste (sprawdzenie podstawowe) mozna zrobic w zwyklym JS.
dane sa wysylane i dalsze sprawdzanie i filtrowanie odbywa sie po stronie php.

jesli sie myle prosze mnie poprawic
Go to the top of the page
+Quote Post
evolucja
post
Post #8





Grupa: Zarejestrowani
Postów: 362
Pomógł: 27
Dołączył: 14.09.2009

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


W sumie nie doczytałem wszystkiego do końca, myślałem, że mówisz o całej walidacji only JS.
Go to the top of the page
+Quote Post
gizmo1985
post
Post #9





Grupa: Zarejestrowani
Postów: 48
Pomógł: 1
Dołączył: 19.01.2010

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


A takie pytanie jeszcze mam, jak zrobić takie cóś, żeby w momencie nie wpisania nic w pole, nic nie zostało wysłane ...
W sensie przy aktualizacji, żeby nie zapisywało mi pustej wartości w bazie winksmiley.jpg (IMG:style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post
elmozaur
post
Post #10





Grupa: Zarejestrowani
Postów: 518
Pomógł: 18
Dołączył: 21.07.2008

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


no wlasnie ;-) bo po co wysylac formularz z pustymi polami ? wyswietlac komunikat na innej stronie i raz jeszcze wracac do tego samego formularza skoro mozna to zrobic na tej samej stronie po 1 kliknieciu myszki ;-)
Go to the top of the page
+Quote Post
evolucja
post
Post #11





Grupa: Zarejestrowani
Postów: 362
Pomógł: 27
Dołączył: 14.09.2009

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


No tak jak koledzy mówili..
via JS - nie wyślesz formularza dopóki nie zostaną wpisane dane
via PHP - jeśli jakaś zmienna jest empty np. empty($_POST['miasto']) to wtedy nie wykonujesz zapisu do bazy.
Go to the top of the page
+Quote Post
elmozaur
post
Post #12





Grupa: Zarejestrowani
Postów: 518
Pomógł: 18
Dołączył: 21.07.2008

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


Cytat(gizmo1985 @ 23.01.2010, 18:43:45 ) *
A takie pytanie jeszcze mam, jak zrobić takie cóś, żeby w momencie nie wpisania nic w pole, nic nie zostało wysłane ...
W sensie przy aktualizacji, żeby nie zapisywało mi pustej wartości w bazie winksmiley.jpg (IMG:style_emoticons/default/tongue.gif)


dokladnie tak jak napisalem wyzej ;-)
Go to the top of the page
+Quote Post
gizmo1985
post
Post #13





Grupa: Zarejestrowani
Postów: 48
Pomógł: 1
Dołączył: 19.01.2010

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


No tak (IMG:style_emoticons/default/winksmiley.jpg)
ale to muszę mozolnie dla każdego pola tworzyć (IMG:style_emoticons/default/winksmiley.jpg) czy da się to jakoś uogólnić ? (IMG:style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post
evolucja
post
Post #14





Grupa: Zarejestrowani
Postów: 362
Pomógł: 27
Dołączył: 14.09.2009

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


dlaczego mozolnie? (IMG:style_emoticons/default/biggrin.gif)
  1. if($_POST["pole1"]; != null|$_POST["pole2"]; != null|$_POST["pole3"]; != null|$_POST["pole4"]; != null|$_POST["pole5"]; != null) {
  2. <zapisujesz do bazy> } else {
  3. <wyswietlasz blad> }
Go to the top of the page
+Quote Post
pedro84
post
Post #15





Grupa: Nieautoryzowani
Postów: 2 249
Pomógł: 305
Dołączył: 2.10.2006

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


Cytat(evolucja @ 23.01.2010, 18:53:36 ) *
dlaczego mozolnie? (IMG:style_emoticons/default/biggrin.gif)
  1. if($_POST["pole1"]; != null|$_POST["pole2"]; != null|$_POST["pole3"]; != null|$_POST["pole4"]; != null|$_POST["pole5"]; != null) {
  2. <zapisujesz do bazy> } else {
  3. <wyswietlasz blad> }



gizmo1985, możesz to zrobić w ten sposób jak Ci podał evolucja, choć akurat lepiej użyć empty(). Nie zapomnij, że najpierw rób wszystko po stronie serwera, ewentualnie potem baw się js.
Go to the top of the page
+Quote Post
elmozaur
post
Post #16





Grupa: Zarejestrowani
Postów: 518
Pomógł: 18
Dołączył: 21.07.2008

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


Cytat(pedro84 @ 23.01.2010, 19:03:59 ) *
gizmo1985, możesz to zrobić w ten sposób jak Ci podał evolucja, choć akurat lepiej użyć empty(). Nie zapomnij, że najpierw rób wszystko po stronie serwera, ewentualnie potem baw się js.



Rozwiazanie kompletnie nie logiczne jak dla mnie gdyz:
wyobraz sobie ze 10000000 userow wysyla w tym samym czasie do bazy swoje formularze z czego 50% ma puste pola.
Jesli po stronie klienta najpierw sprawdzisz formularz za pomoca JS to nie bedziesz musial "meczyc" serwera zbednymi odpowiedziami aby userzy poprawili i wysylali raz jeszcze swoje formularze. Dodatkowo do bazy trafia jedynie pelne i poprawnie wypelnione wersje.
Go to the top of the page
+Quote Post
evolucja
post
Post #17





Grupa: Zarejestrowani
Postów: 362
Pomógł: 27
Dołączył: 14.09.2009

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


Cytat
ewentuanie potem baw się js.
Go to the top of the page
+Quote Post
pedro84
post
Post #18





Grupa: Nieautoryzowani
Postów: 2 249
Pomógł: 305
Dołączył: 2.10.2006

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


Cytat(elmozaur @ 23.01.2010, 19:14:19 ) *
Rozwiazanie kompletnie nie logiczne jak dla mnie gdyz:
wyobraz sobie ze 10000000 userow wysyla w tym samym czasie do bazy swoje formularze z czego 50% ma puste pola.
Jesli po stronie klienta najpierw sprawdzisz formularz za pomoca JS to nie bedziesz musial "meczyc" serwera zbednymi odpowiedziami aby userzy poprawili i wysylali raz jeszcze swoje formularze. Dodatkowo do bazy trafia jedynie pelne i poprawnie wypelnione wersje.


Czy Ty rozumiesz o czym piszesz, bo wydaje mi się, że nie. Przecież logiczne jest, że:
1. Najpierw robi walidację PHP
2. Potem się bawi w walidację za pomocą js.
---
3. Waliduje js.
4. Kiedy js jest wyłączony, waliduje PHP.

Ot, cały trik.
Go to the top of the page
+Quote Post
Kshyhoo
post
Post #19





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




W JS przed wysłaniem danych:
  1. <script language="javascript" type="text/javascript">
  2. function error(tekst) {
  3. if (errfound) return;
  4. window.alert(tekst);
  5. errfound = true;
  6. }
  7. function validate() {
  8. errfound = false;
  9. var bledy = "";
  10. with (document.forms[0]) {
  11. if (tytul.value == "") bledy += "Nie wpisałeś tytułu.\n";
  12. if (autor.value == "") bledy += "Nie wpisałeś autora.\n";
  13. if (kat_id.value == "") bledy += "Nie wybrałeś kategorii.\n";
  14. if (bledy != "") error(bledy);
  15. }
  16. return !errfound;
  17. }
  18. </script>
  19.  
  20. <form method='post' action='plik.php' onsubmit='return validate();'>
Go to the top of the page
+Quote Post
elmozaur
post
Post #20





Grupa: Zarejestrowani
Postów: 518
Pomógł: 18
Dołączył: 21.07.2008

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


Cytat(pedro84 @ 23.01.2010, 19:16:56 ) *
Czy Ty rozumiesz o czym piszesz, bo wydaje mi się, że nie. Przecież logiczne jest, że:
1. Najpierw robi walidację PHP
2. Potem się bawi w walidację za pomocą js.
---
3. Waliduje js.
4. Kiedy js jest wyłączony, waliduje PHP.
Ot, cały trik.


Moge sie mysli oczywiscie nie mowie ze nie...
ale jak masz otwarta strone z formularzem
to jak przed wyslaniem chcialbys sprawdzic czy formularz zostal wypelniony (IMG:style_emoticons/default/questionmark.gif) ? PHPem ? a dopiero potem JSem (IMG:style_emoticons/default/questionmark.gif) ?
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
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: 14.09.2025 - 13:24