Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] Formularz - wszystkie pola obowiązkowe?
kleszcz12
post 16.03.2008, 13:37:01
Post #1





Grupa: Zarejestrowani
Postów: 102
Pomógł: 0
Dołączył: 16.03.2008

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


Witam, co zrobić aby wszystkie pola w formularzu były obowiązkowe?(gdy się nie wypełni jakiegoś pola, wpis nie zostaje zapisany), obecnie jest tak że po wypełnieniu jednego pola (obojętnie którego) pola wpis jest dodawany, proszę o pomoc.
  1. <?
  2.  
  3. if ($_GET['lang']=="eng") 
  4. { 
  5. $lang='eng'; 
  6. include($fpath."./lang/english.php"); 
  7. } 
  8. if ($_GET['lang']=="pol") 
  9. { 
  10. $lang='pol'; 
  11. include($fpath."./lang/polish.php"); 
  12. } 
  13. $pole4 = trim($_POST['pole6']); 
  14. $pole5 = trim($_POST['pole5']); 
  15. $pole1 = trim($_POST['pole1']); 
  16. $pole2 = trim($_POST['pole2']); 
  17. $pole3 = trim($_POST['pole3']); 
  18. $pole4 = trim($_POST['pole4']); 
  19. $pole7 = trim($_POST['pole7']); 
  20. $pole8 = trim($_POST['pole8']); 
  21. $logofirmy = trim($_POST['logofirmy']); 
  22. $ulica = trim($_POST['ulica']); 
  23. $miasto = trim($_POST['miasto']); 
  24. $i = $numer1; 
  25. if(empty($pole5) and empty($pole6) and empty($pole7) and empty($pole8) and empty($logofirmy) and empty($ulica) and empty($miasto) and empty($pole1) and empty($pole2) and empty($pole3) and empty($pole4)) { 
  26.  
  27.  
  28.  
  29. // formularz dodawania
  30. echo '<form action="" method="post"> 
  31.  
  32.  
  33. <table> 
  34. <tr> 
  35.  
  36.  
  37.  
  38. <td align=right> 
  39. Firma:* 
  40. </td> 
  41. <td align=left> 
  42. <input type="text" name="pole5" style="width: 200px;" /> 
  43. </td> 
  44. </tr> 
  45. </tr> 
  46.  
  47. <td align=right> 
  48. Imię i nazwisko:* 
  49. </td> 
  50. <td align=left> 
  51. <input type="text" name="pole7" style="width: 200px;" /> 
  52. </td> 
  53. </tr> 
  54. </tr> 
  55.  
  56. <td align=right> 
  57. Ulica:* 
  58. </td> 
  59. <td align=left> 
  60. <input type="text" name="ulica" style="width: 200px;" /> 
  61. </td> 
  62. </tr> 
  63. </tr> 
  64.  
  65. <td align=right> 
  66. Miasto:* 
  67. </td> 
  68. <td align=left> 
  69. <input type="text" name="miasto" style="width: 200px;" /> 
  70. </td> 
  71. </tr> 
  72. </tr> 
  73.  
  74. <td align=right> 
  75. Telefon:* 
  76. </td> 
  77. <td align=left> 
  78. <input type="text" name="pole6" style="width: 200px;" /> 
  79. </td> 
  80. </tr> 
  81. </tr>
  82.  
  83. <td align=right> 
  84. Fax:* 
  85. </td> 
  86. <td align=left> 
  87. <input type="text" name="pole1" style="width: 200px;" /> 
  88. </td> 
  89. </tr> 
  90. </tr> 
  91. <td align=right> 
  92. GSM:* 
  93. </td> 
  94. <td align=left> 
  95. <input type="text" name="pole2" style="width: 200px;" /> 
  96. </td> 
  97. <tr> 
  98. </tr> 
  99. <td align=right> 
  100. E-mail:* 
  101. </td> 
  102. <td align=left> 
  103. <input type="text" name="pole3" style="width: 200px;" /> 
  104. </td> 
  105. </tr> 
  106.  
  107. <td align=right> 
  108. WWW:* 
  109. </td> 
  110. <td align=left> 
  111. <input type="text" name="pole8" style="width: 200px;" /> 
  112. </td> 
  113. </tr> 
  114. </tr>
  115.  
  116. <td align=right> 
  117. Logo firmy:** 
  118. </td> 
  119. <td align=left> 
  120. <input type="text" name="logofirmy" style="width: 200px;" /> 
  121. <br>**-podaj adres logo, lub<a href="upload.php"> <b>wgraj je na nasz serwer</b></a>
  122. </td> 
  123. </tr> 
  124. </tr>
  125.  
  126. <tr> 
  127. <td align=right> 
  128. '.$lang_glob12.'TreŚć:* 
  129. </td> 
  130. <td align=left> 
  131. <textarea name="pole4" style="width: 200px; height: 100px;"> 
  132. </textarea> 
  133. </td> 
  134. </tr> 
  135. <tr> 
  136. <td align=right> 
  137. <input type="submit" value="Dodaj" /> 
  138. </td> 
  139. <td align=left> 
  140. <br>*-Pola obowiązkowe
  141. </td> 
  142. </tr> 
  143. </table> 
  144. </form>'; 
  145. } 
  146. else { 
  147.  
  148. $date=date("d-m-Y h:i"); 
  149. // dane pochodzące z formularza 
  150. $dane = 
  151. $pole1."`"
  152. .$pole2."`"
  153. .$pole3."`"
  154. .$pole4."`"
  155. .$pole5."`"
  156. .$pole6."`"
  157. .$pole7."`"
  158. .$pole8."`"
  159. .$logofirmy."`"
  160. .$ulica."`"
  161. .$miasto."`"
  162. .$date."`"
  163. .$i."\n"; 
  164.  
  165.  
  166.  
  167.  
  168.  
  169. // przypisanie zmniennej $file nazwy pliku 
  170. $file = "ksiega.txt"; 
  171. // uchwyt pliku, otwarcie do dopisania 
  172. $fp = fopen($file, "a"); 
  173. // blokada pliku do zapisu 
  174. flock($fp, 2); 
  175. // zapisanie danych do pliku 
  176. fwrite($fp, $dane); 
  177. // odblokowanie pliku 
  178. flock($fp, 3); 
  179. // zamknięcie pliku 
  180. fclose($fp); 
  181. $i=$i+1; 
  182. echo $lang_glob14."<br />"; 
  183. echo "<a href=\"index.php?lang=".$lang."&id=ksiega\">".$lang_glob15."</a>"; 
  184. }
  185.  
  186. ?>
Go to the top of the page
+Quote Post
siemakuba
post 16.03.2008, 13:41:34
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 112
Pomógł: 20
Dołączył: 10.04.2005

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


To proste, spójrz na warunek który zbudowałeś, a potem przetłumacz to na język "polski" :)

jeżeli pole1 jest puste i pole 2 jest puste i pole2 jest puste i poleN jest puste

Warunek będzie spełniony jeżeli wszystkie pola są puste, tak?
Ergo, jeżeli chociaż jedne pole nie będzie puste, warunek nie będzie spełniony.

Już wiesz co trzeba zmienić? :)

Przy okazji, przenoszę na przedszkole.

pozdr.
Go to the top of the page
+Quote Post
kleszcz12
post 16.03.2008, 13:53:49
Post #3





Grupa: Zarejestrowani
Postów: 102
Pomógł: 0
Dołączył: 16.03.2008

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


Eee...niebardzo...nie miałem nigdy bliższej styczności z "empty"...możesz mnie trochę bardziej nakierować smile.gif?
Go to the top of the page
+Quote Post
Grzyw
post 16.03.2008, 14:02:45
Post #4





Grupa: Zarejestrowani
Postów: 561
Pomógł: 75
Dołączył: 19.08.2004
Skąd: Wrocław

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


Można to zrobić z automatu dla wszystkich pól.
Tutorial:
http://www.kurshtml.boo.pl/html/ramy_formu...formularze.html


--------------------
Idąc po czyichś śladach, nie zajdziesz ani kroku dalej...
Go to the top of the page
+Quote Post
kleszcz12
post 16.03.2008, 14:05:38
Post #5





Grupa: Zarejestrowani
Postów: 102
Pomógł: 0
Dołączył: 16.03.2008

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


PS. zrobiem:
  1. <?php
  2. if(!empty($pole5) && !empty($pole6) && !empty($pole7) && !empty($pole8) && !empty($logofirmy) && !empty($ulica) && !empty($miasto) && !empty($pole1) && !empty($pole2) && !empty($pole3) && !empty($pole4)) {
  3. ?>

...tak
ale teraz się wogle formularz nie wyświetla, tylko puste wpisy dodają...

Ten post edytował kleszcz12 16.03.2008, 14:07:43
Go to the top of the page
+Quote Post
Cezar708
post 16.03.2008, 14:09:42
Post #6





Grupa: Zarejestrowani
Postów: 1 116
Pomógł: 119
Dołączył: 10.05.2005
Skąd: Poznań

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


Cytat(Grzyw @ 16.03.2008, 14:02:45 ) *
Można to zrobić z automatu dla wszystkich pól.
Tutorial:
http://www.kurshtml.boo.pl/html/ramy_formu...formularze.html



może jestem trochę serwer-sidowo-skrzywiony, ale nie do końca wierzę w walidację TYLKO po stronie przeglądarki, Po stronie przeglądarki może być, ale po stronie serwera MUSI być (oczywiście w moim mniemaniu)

a po stronie serwera możesz zrobić tak:
  1. <?php
  2. foreach ( $_POST as $value ){
  3. if ( !isset($value{0}) ) { // czyli jeśli nie ma nawet jednego znaku w tej zmiennej
  4. // to wyswietlamy ponownie formularz
  5.  wyswietlFormularzZOpisemBledu();
  6. }
  7. }
  8. ?>


Ten post edytował Cezar708 16.03.2008, 14:10:05
Go to the top of the page
+Quote Post
kleszcz12
post 16.03.2008, 14:15:28
Post #7





Grupa: Zarejestrowani
Postów: 102
Pomógł: 0
Dołączył: 16.03.2008

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


Ok działa...
A wie ktoś jak to zrobić z "empty", z ciekawości tongue.gif
Go to the top of the page
+Quote Post
Cezar708
post 16.03.2008, 14:20:50
Post #8





Grupa: Zarejestrowani
Postów: 1 116
Pomógł: 119
Dołączył: 10.05.2005
Skąd: Poznań

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


  1. <?php
  2. if( empty($_POST['pole5'])
  3. || empty($_POST['pole6'])
  4. || empty($_POST['pole7'])
  5. || empty($_POST['pole8'])
  6. || empty($_POST['logofirmy'])
  7. || empty($_POST['ulica'])
  8. || empty($_POST['miasto'])
  9. || empty($_POST['pole1'])
  10. || empty($_POST['pole2'])
  11. || empty($_POST['pole3'])
  12. || empty($_POST['pole4'])) 
  13. {
  14. /// jakis blad wyswietl formularz 
  15. } else {
  16. // wszystko w porzadku mozesz wrzucac dane do bazy 
  17. }
  18. ?>
Go to the top of the page
+Quote Post
Grzyw
post 16.03.2008, 14:23:03
Post #9





Grupa: Zarejestrowani
Postów: 561
Pomógł: 75
Dołączył: 19.08.2004
Skąd: Wrocław

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


Cytat(Cezar708 @ 16.03.2008, 14:09:42 ) *
może jestem trochę serwer-sidowo-skrzywiony, ale nie do końca wierzę w walidację TYLKO po stronie przeglądarki


Cezar, to nie skrzywienie - wystarczy, że klient wyłączy JS w przeglądarce. I masakra.
Walidacja PHP zawsze, JS opcjonalnie, żeby nie pchać niepotrzebnie danych do parsowania do PHP'a.


--------------------
Idąc po czyichś śladach, nie zajdziesz ani kroku dalej...
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 - 10:22