Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP+MySQL] Problem z formularzem
Forum PHP.pl > Forum > Przedszkole
roobik
Witam!
Od razu przejdę do rzeczy.
Mam taki oto kod formularza
  1. <form name="ksiazka" method="post">
  2. <table border="0" cellspacing="3" cellpadding="0">
  3.  
  4. <tr>
  5. <td align="right" class="uni_01">Autor</td>
  6. <td class="uni_01">
  7. <input type="text" name="autor" size="25" value="'.$autor.'">
  8. </td>
  9. </tr>
  10. <tr>
  11. <td align="right" class="uni_01">Tytuł</td>
  12. <td class="uni_01"><? include('config.php'); ?>
  13.  
  14. <?
  15.  
  16. include "pass.php"; //haslo
  17. if ($_SESSION[haslo])
  18. {
  19. if (!($_SESSION[haslo] == $haslo))
  20. {
  21. header ("Location: stop.php"); //strona z haslem
  22. }
  23. }
  24. else
  25. {
  26. header ("Location: stop.php");
  27. }
  28.  
  29. ?>
  30.  
  31. <?
  32.  
  33. include('module/ksiazka.inc.php');
  34.  
  35.  
  36. function site_main(){
  37.  
  38. if($cmd=='')
  39. {
  40.  formularz();
  41. }
  42. else if($cmd== 'add')
  43. {
  44.  upload();
  45. }
  46. }
  47.  
  48.  
  49.  
  50. function formularz() {
  51. global $ksiazki_tbl, $autor, $tytul, $tresc, $okladka; 
  52.  
  53. main_title_open();
  54. echo '<center>KSIĄŻKA - DODAJ</center>';
  55. main_title_close();
  56. main_text_open();
  57.  
  58. echo '<table width=35% align=center vAlign=top><tr><td><td align=center><img src="OBRAZKI/logged.gif" border=0 align=left><a href="ksiazka_logowanie.php?logout"><font face=verdana size=1 color=#000000><b>Po skończeniu pracy</b><br></font><font face=verdana size=2 color=red><b><u>WYLOGUJ SIĘ!</u></b></font></a></td></tr></table>';
  59. echo '<br><hr width=75% size=1 noshade>
  60.  
  61. <form name="ksiazka" method="post" enctype="multipart/form-data">
  62. <table border="0" cellspacing="3" cellpadding="0">
  63. <tr>
  64. <td align="right" class="uni_01">Autor</td>
  65. <td class="uni_01">
  66. <input type="text" name="autor" size="25" value="'.$autor.'">
  67. </td>
  68. </tr>
  69. <tr>
  70. <td align="right" class="uni_01">Tytuł</td>
  71. <td class="uni_01">
  72. <input type="text" name="tytul" size="25" value="'.$tytul.'">
  73. </td>
  74. </tr>
  75. <tr>
  76. <td align="right" class="uni_01">Treść</td>
  77. <td class="uni_01">
  78. <textarea cols="40" rows="4" type="text" name="tresc" value="'.$tresc.'"></textarea>
  79. </td>
  80. </tr>
  81. <tr>
  82. <td align="right" class="uni_01"><b>okladka:</b></td>
  83. <td><input type="file" name="plik" size="20"></td>
  84. </tr>
  85. <tr>
  86. <td align="right" class="uni_01"> </td>
  87. <td class="uni_01"><input style="font-weight: bold;" type="submit" name="ok" value="OK">
  88. <input type="reset" name="reset" value="Wyczyść pola"></td>
  89. </tr>
  90. </table>
  91. </form>';
  92. }
  93.  
  94. $fname=$_FILES['plik']['name'];
  95. $pliks=$_FILES['plik']['tmp_name'];
  96.  
  97. $fname = explode('.',$fname);
  98. $r = $fname[1];
  99.  
  100. $gen_name = md5(uniqid(gmdate("U")));
  101. $okladka= 'ksiazka/okladka_'.$gen_name.'.'.$r;
  102.  
  103. move_uploaded_file($pliks, $okladka);
  104.  
  105. $query = "INSERT INTO $ksiazki_tbl VALUES(NULL, now(), '$autor', '$tytul', '$tresc', '$okladka', '')";
  106. mysql_query($query);
  107.  
  108.  
  109. $dir = '_public_html/ksiazka/';
  110. $fname=$_FILES['okladka']['name'];
  111.  
  112. #=====================================================#
  113.  
  114. $site_title = 'KSIĄŻKA';
  115. $meta_info = '';
  116.  
  117. include("theme/$theme/normal.php");
  118.  
  119. ?>

Załóżmy, że powyższy plik to dodaj_ksiazke.php. Skrypt poprawnie dodaje dane z formularza do bazy i byłoby wszystko fajnie, lecz tuż po wejściu na tę stronę bez mojej ingerencji (czyli bez wpisywania danych, czy tym bardziej naciśnięcia OK) samoczynnie jest dodawany PUSTY rekord do bazy! ... Jeśli w miarę możliwości ktoś mógłby zajrzeć w kod i powiedzieć , co robię nie tak... byłbym wdzięczny...
Koshin
Jeśli to jest cały skrypt, to jeszcze troszkę pracy przed tobą.


Nie obsługujesz w żaden sposób wgranego zdjęcia, poczytaj o uploadowaniu plików

Drugie, nie wstawia ci danych do bazy, bo są puste rekordy, zmienne z formularza nie są wstawione w zmienne php

np:

$autor = $_POST['autor'];
roobik
niemal cały skrypt mam już zrobiony. Brakuje mi tylko uploadera. To co podałem wcześniej to tylko mały fragment całości...

//EDIT
Pierwszy post został wyedytowany. Nie chciałem robić śmietniska. Teraz jest to cały kod
Babcia@Stefa
Przy dodawaniu zrób warunek typu:
  1. <?php
  2. if(strlen($tytul) < 10 OR ... )
  3. $error .= 'Błąd za krótka treść...';
  4. ?>


  1. <?php
  2. if(strlen($tytul) > 10 OR .......)
  3. mysql_query(INSERT INTO ... (...) VALUES (...));
  4. ?>


Dziękuję, Babcia@Stefa
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.