Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP+MySQL] Problem z formularzem, przede wszystkim chodzi o uploader
roobik
post 31.07.2007, 21:01:40
Post #1





Grupa: Zarejestrowani
Postów: 410
Pomógł: 5
Dołączył: 25.01.2005
Skąd: Wrocław

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


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...

Ten post edytował roobik 19.08.2007, 18:35:54
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
Koshin
post 31.07.2007, 21:04:27
Post #2





Grupa: Zarejestrowani
Postów: 196
Pomógł: 0
Dołączył: 29.04.2002
Skąd: jesteś?

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


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'];


--------------------
My czuwamy.eu abyś mógł spać spokojnie
zapasowakopia.pl - myśl zanim będzie za późno.
Go to the top of the page
+Quote Post
roobik
post 31.07.2007, 21:14:23
Post #3





Grupa: Zarejestrowani
Postów: 410
Pomógł: 5
Dołączył: 25.01.2005
Skąd: Wrocław

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


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

Ten post edytował roobik 19.08.2007, 18:49:32
Go to the top of the page
+Quote Post
Babcia@Stefa
post 20.08.2007, 09:26:55
Post #4





Grupa: Zarejestrowani
Postów: 654
Pomógł: 17
Dołączył: 19.03.2006
Skąd: z kosmosu ;)

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


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


--------------------
Środowisko testowe (desktop) - Gedit, lighttpd, sftp, rsync, xfce4-terminal, chromium, firefox4 | System: Gentoo ~x86
O'Neill - serwer WWW @ lighttpd, links, nano, rsyncd, sftpd | System: Debian
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 - 04:59