Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Formularz - wszystkie pola obowiązkowe?
Forum PHP.pl > Forum > Przedszkole
kleszcz12
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. ?>
siemakuba
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.
kleszcz12
Eee...niebardzo...nie miałem nigdy bliższej styczności z "empty"...możesz mnie trochę bardziej nakierować smile.gif?
Grzyw
Można to zrobić z automatu dla wszystkich pól.
Tutorial:
http://www.kurshtml.boo.pl/html/ramy_formu...formularze.html
kleszcz12
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ą...
Cezar708
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. ?>
kleszcz12
Ok działa...
A wie ktoś jak to zrobić z "empty", z ciekawości tongue.gif
Cezar708
  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. ?>
Grzyw
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.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.