Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML+PHP+MySQL] Problem z formularzem [EDIT// zmieniony kod!]
Forum PHP.pl > Forum > Przedszkole
roobik
Witam!
Jestem w końcowej fazie przygotowań nowego "działu" na stronie i stanąłem w miejscu, jeśli chodzi o formularz.
Po wypełnieniu formularza nie jest sprawdzana poprawność "wymaganych" pól ani dane z tego formularza nie są przesyłane do bazy...
Struktura tabeli wiersze
id, tytul, text, oryg_autor, nick, date, stat, opened, vcount, vvalue
Poniżej przedstawiam co "zrobiłem"...
  1. <? include('config.php');
  2.  
  3. function site_main() {
  4.  
  5.  
  6. global $id, $cmd, $down_limit, $mess, $nick, $avatar;
  7.  
  8.  
  9. switch($cmd) {
  10.  
  11. case 'dodaj':
  12.  
  13. echo '<table width=100% border=0 align=center vAlign=top><tr><td>';
  14. main_text_open();
  15. echo '<br><center>
  16. <table width=99% align=center vAlign=top border=0>
  17. <tr>
  18. <td valign=top>
  19. <font face=verdana size=1><a href="login.php">Pełny dostęp do działu mają osoby zalogowane.<br><a href="http://www.next.masternet.pl/login.php" title="logowanie"><u>Zaloguj się</u></a>.<br><br>Nie masz konta?<br><a href="http://www.next.masternet.pl/login.php?cmd=#reg" title="rejestracja"><u>Zarejestruj się!</u></a>.</a></font>
  20. </td>
  21. </tr>
  22. </table>';
  23. formularz();
  24. //losowanie hasła z obrazka
  25. srand((double)microtime()*1000000);
  26. for($i=0;$i<5;$i++) {
  27. $znak=chr(rand(48,122));
  28. if (eregi("[0-9a-zA-Z]",$znak)) $haslo .= $znak;
  29. else $i--;
  30. }
  31. $_SESSION["kod"] = $haslo;
  32.  
  33. main_text_close();
  34. echo '</td></tr></table>';
  35. //}
  36. break;
  37.  
  38.  
  39. case 'dodaj_wiersz':
  40. main_title_open();
  41. echo '<center>dodaj_wiersz</center>';
  42. main_title_close();
  43. main_text_open();
  44. check_form();
  45. //list_fsearch_data();
  46. main_text_close();
  47. break;
  48.  
  49. #=====================================================#
  50. .
  51. .
  52. .
  53. #=====================================================#
  54. function formularz() {
  55. global $wiersze_tbl, $nick, $tytul, $text, $zalogowany; 
  56.  
  57. $info = get_user_info();
  58.  
  59.  
  60. <form name="wiersze" method="post" enctype="multipart/form-data">
  61.  
  62. <table border="0" cellspacing="3" cellpadding="0">
  63.  
  64. <tr>
  65. <td align="right" class="uni_01">Twój nick:</td>
  66. <td class="uni_01"><b>'.$info[1].'</b><input type="hidden" name="nick" value="'.$info[1].'">
  67. </td>
  68. </tr>
  69.  
  70. <tr>
  71. <td align="right" class="uni_01">Autor(*):</td>
  72. <td class="uni_01"><input type="text" name="autor" size="60" value="">
  73. </td>
  74. </tr>
  75.  
  76. <tr>
  77. <td align="right" class="uni_01">Tytuł:</td>
  78. <td><input type="text" name="tytul" size="60"></td>
  79. </tr>
  80. <tr>
  81.  
  82. <tr>
  83. <td align="right" class="uni_01">Treść wiersza:</td><td class="uni_01">
  84. <textarea cols="60" rows="20" type="text" name="text" value=""></textarea>
  85. </td>
  86. </tr>
  87.  
  88. <tr>
  89. <td class="uni_01" valign="top"><div align="right">Weryfikacja(**):</div></td>
  90. <td class="uni_01"><img src="obrazek.php">&nbsp;<input type="text" name="weryfikacja">
  91. </td>
  92. </tr>
  93.  
  94. <td align="right" class="uni_01"> </td>
  95. <td class="uni_01"><input style="font-weight: bold;" type="submit" name="ok" value="OK">
  96. <input type="reset" name="reset" value="Wyczyść pola">
  97. <input type="hidden" name="cmd" value="dodaj_wiersz"></td>
  98. </tr>
  99. </table>
  100. </form>';
  101. }
  102. #=====================================================#
  103. .
  104. .
  105. .
  106. #=====================================================#
  107. function check_form() {
  108. global $tytul, $text, $oryg_autor, $nick;
  109. if(check_form_data()<>10) {
  110.  
  111. } else {
  112. $query = "INSERT INTO wiersze VALUES (NULL, '$tytul', '$text', '$oryg_autor', '$nick', now(), '0', '0', 0, '0.00')";
  113. $result = mysql_query($query);
  114.  
  115. if($result) {
  116.  
  117. echo 'Wiersz zostal dodany.';
  118. echo '<br><br><center>[<a href="index.php">strona główna</a>]</center><br>';
  119.  
  120. } else {
  121.  
  122. echo 'Baza danych chwilowo niedostepna. Odczekaj kilka minut i spróbuj dodać wiersz po
    nownie.<br>Jeżeli problem będzie się powtarzał zawiadom o tym <a href="mailer.php">admina</a>'
    ;
  123.  
  124. }
  125.  
  126. }
  127.  
  128. }
  129.  
  130. #=====================================================#
  131. function check_form_data() {
  132.  
  133. $nick = $_GET['nick'];
  134.  
  135. global $tytul, $text, $nick;
  136.  
  137. if (strtolower($_POST["weryfikacja"])<>strtolower($_SESSION["kod"])
  138. and isset($_POST["weryfikacja"])) $a++; {
  139. echo 'BŁĄD KODU';
  140. }
  141.  
  142.  
  143. if($tytul=='') $err[0] = 1;
  144. if($text=='') $err[1] = 1;
  145. if($nick=='') $err[2] = 1;
  146.  
  147. //$text_l = strlen($text);
  148.  
  149. //if($text_l>200) $err[3] = 1;
  150. //if(!ereg ("^.+@.+..+$", $mail)) $err[4] = 1;
  151.  
  152. $error = 0;
  153.  
  154. if($err[0]==1) {
  155. echo '<br>Nie wprowadzono tytulu. ';
  156. echo $err; //
  157. $error++; 
  158. }
  159.  
  160. if($err[1]==1) {
  161. echo '<br>Nie wprowadzono tresci wiersza. ';
  162. echo $err; //
  163. $error++;
  164. }
  165.  
  166. if($err[2]==1) {
  167. echo '<br>Nie podano autora. ';
  168. echo $err; //
  169. $error++;  
  170. }
  171.  
  172. if($err[3]==1) {
  173. echo '<br>BŁĄD nr 3';
  174. $error++;  
  175. }
  176.  
  177. if($err[4]==1) {
  178. echo '<br>BŁĄD nr 4';
  179. $error++;  
  180. }
  181.  
  182. if($error<>0) echo '<br><br><center>[<a href="javascript:history.back();">wstecz</a>]</center><br>';
  183.  
  184. if($error==0) return 10;
  185. }
  186.  
  187.  
  188. #=====================================================#
  189.  
  190. $site_title = tytul_wiersze();
  191. $meta_info = '';
  192.  
  193. include("theme/$theme/normal.php");
  194. ?>

W pliku zostawiłem tylko te funkcje, które są potrzebne do formularza - inaczej byłby to bardzo długi plik...

Czy ktoś z Was byłby w stanie sprawdzić powyższy plik i napisać, w którym miejscu (lub w których miejscach) robię błąd (błędy)?
Bardzo proszę o jakąkolwiek odpowiedź...
potreb
Poczytaj o register_globals non stop główny temat. Zmienne musisz przekazywać za pomoca $_POST i $_GET
roobik
To mój pierwszy taki formularz. Poprzedni zakończył się fiaskiem...
No a w linii 61 mam:
  1. <?php
  2. <form name="wiersze" method="post" enctype="multipart/form-data">
  3. ?>


//edit
poprawiłem nieco i zmieniłem kod.
Teraz mam tak, że jak nie ma funkcji sprawdzającej poprawność wprowadzanych danych , to jest elegancko - dane są dodawane. Jeśli jednak ta funkcja jest - niestety, mimo poprawnie wprowadzanych danych skrypt "upiera się" , że nie podano nicka. Po wyświetleniu błedu mam Array:
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.