Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][MySQL] Upload i dodanie do bazy
botnaizi
post 15.12.2009, 20:14:01
Post #1





Grupa: Zarejestrowani
Postów: 72
Pomógł: 0
Dołączył: 8.12.2009

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


Witam,


Mam problem jak przerobić skrypt ten :
  1. <html><body><form action="upload.php" method="post" enctype="multipart/form-data">
  2. <p><input type="file" name="upload_image[]" /></p>
  3. <p><input type="file" name="upload_image[]" /></p>
  4. <p><input type="file" name="upload_image[]" /></p>
  5. <p><input type="submit" name="upload_submit" value="Wyślij!" /></p>
  6. </form>
  7. cos
  8.  
  9.  
  10.  
  11. <?php
  12. $config = array();
  13. $config['thumbnail_width'] = 180; // maksymalna szerokość miniatury w pikselach
  14. $config['thumbnail_height'] = 160; // maksymalna wysokość miniatury w pikselach
  15. $config['thumbnail_scale'] = true; // czy przy minimalizowaniu wielkości zachowywać skalę?
  16. $config['path_images'] = 'zdjecia/'; // ścieżka do katalogu grafik
  17. $config['path_thumbnails'] = 'miniatury/'; // ścieżka do katalogu miniatur
  18. $config['max_file_size'] = 1048576; // maksymalna wielkość pliku w bajtach, 1MB
  19. $config['accepted_extensions'] = array('jpg', 'jpeg', 'png', 'gif'); // dozwolone rozszerzenia
  20. $config['accepted_mimes'] = array('image/jpg', 'image/jpeg', 'image/png', 'image/gif'); // dozwolone typy MIME
  21.  
  22.  
  23.  
  24. if ( !file_exists($config['path_images']) || !is_dir($config['path_images']) ) {
  25. if ( !mkdir($config['path_images']) ) { // utworzenie katalogu wraz
  26. exit('Folder obrazków niemożliwy do utworzenia!');
  27. }
  28. chmod($config['path_ images'], 0777); // nadanie praw
  29. }
  30. if ( !file_exists($config['path_thumbnails']) || !is_dir($config['path_thumbnails']) ) {
  31. if ( !mkdir($config['path_thumbnails']) ) { // utworzenie katalogu
  32. exit('Folder miniaturek niemożliwy do utworzenia!');
  33. }
  34. chmod($config['path_thumbnails'], 0777); // nadanie praw
  35. }
  36. if ( !extension_loaded('gd') ) { // sprawdzenie, czy GD jest załadowane
  37. if ( !dl('gd') ) { // próba wymuszenia załadowania
  38. exit('Biblioteka GD nie została załadowana!');
  39. }
  40. }
  41.  
  42. if ( isset($_FILES['upload_image']) && isset($_POST['upload_submit']) )
  43. {
  44. // pętla analizująca zawartość wszystkich trzech potencjalnie wysyłanych plików
  45. foreach ( $_FILES['upload_image']['error'] as $key => $arr )
  46. {
  47. if ( $_FILES['upload_image']['error'][$key] != UPLOAD_ERR_OK )
  48. {
  49. // błąd wysyłania pliku
  50. continue;
  51. }
  52. if ( $_FILES['upload_image']['size'][$key] > $config['max_file_size'] )
  53. {
  54. // plik jest za duży
  55. continue;
  56. }
  57. if ( file_exists($config['path_images'] . $_FILES['upload_image']['name'][$key]) )
  58. {
  59. // poinformowanie użytkownika o fakcie, że plik o takiej nazwie już istnieje
  60. continue;
  61. }
  62. $extension = explode('.', $_FILES['upload_image']['name'][$key]);
  63. if ( in_array(strtolower($extension[count($extension)-1]), $config['accepted_extensions']) === false || in_array($_FILES['upload_image']['type'][$key], $config['accepted_mimes']) === false )
  64. {
  65. // niepoprawne rozszerzenie pliku
  66. continue;
  67. }
  68. $image = getimagesize($_FILES['upload_image']['tmp_name'][$key]);
  69. if ( !is_array($image) || $image[0] < 1 )
  70. {
  71. // plik graficzny jest spreparowany
  72. continue;
  73. }
  74. if ( !is_uploaded_file($_FILES['upload_image']['tmp_name'][$key]) )
  75. {
  76. // plik nie został wysłany
  77. continue;
  78. }
  79. if ( !move_uploaded_file($_FILES['upload_image']['tmp_name'][$key], $config['path_images'] . $_FILES['upload_image']['name'][$key]) )
  80. {
  81. // wysyłanie nie może zostać zakończone poprawnie
  82. continue;
  83. }
  84. // wysyłanie pliku powiodło się!
  85. // opcjonalnie, jeżeli chcemy tylko z poziomu skrypt mieć dostęp do plików możemy odkomentować poniższa linijkę
  86. // chmod($config['path_images'] . $_FILES['upload_image']['name'][$key], 0600);
  87. print generateThumbnail($_FILES['upload_image']['name'][$key], $extension[count($extension)-1]); // funkcja tworząca miniaturkę
  88. }
  89. }
  90.  
  91. function generateThumbnail($filename, $extension)
  92. {
  93. global $config;
  94. // sprawdzenie, czy plik o podanej nazwie już nie istnieje
  95. if ( file_exists($config['path_thumbnails'] . $filename) )
  96. {
  97. unlink($config['path_thumbnails'] . $filename); // usunięcie miniatury
  98. }
  99. // stworzenie nowej grafiki wg typu
  100. switch ( $extension )
  101. {
  102. case 'gif':
  103. $ic = imagecreatefromgif($config['path_images'] . $filename);
  104. break;
  105. case 'png':
  106. $ic = imagecreatefrompng($config['path_images'] . $filename);
  107. break;
  108. default:
  109. $ic = imagecreatefromjpeg($config['path_images'] . $filename);
  110. break;
  111. }
  112. if ( $ic === false )
  113. {
  114. return 'Miniaturka nie stworzona!';
  115. }
  116. $is = getimagesize($config['path_images'] . $filename); // [0] - szerokość, [1] - wysokość
  117. switch ( $config['thumbnail_scale'] )
  118. {
  119. case false: // zmniejszanie bezpośrednio do 180x160px
  120. $nts = imagecreatetruecolor($config['thumbnail_width'], $config['thumbnail_height']);
  121. imagecopyresized($nts, $ic, 0, 0, 0, 0, $config['thumbnail_width'], $config['thumbnail_height'], $is[0], $is[1]);
  122. break;
  123. default: // zmniejszanie z zachowaniem skali, aż do osiągnięcia co najmniej 180x160px
  124. $width = $is[0];
  125. $height = $is[1];
  126. $ratio = $is[0] / $config['thumbnail_width'];
  127. if ( $ratio > 1 )
  128. {
  129. $width = $config['thumbnail_width'];
  130. $height = intval($is[1] / $ratio);
  131. }
  132. $ratio = $height / $config['thumbnail_height'];
  133. if ( $ratio > 1 )
  134. {
  135. $width = intval($width / $ratio);
  136. $height = $config['thumbnail_height'];
  137. }
  138. $nts = imagecreatetruecolor($width, $height); // utworzenie obrazka o podanych rozmiarach z czarnym tłem
  139. imagecopyresized($nts, $ic, 0, 0, 0, 0, $width, $height, $is[0], $is[1]); break;
  140. }
  141. switch ( $extension ) // zapis do pliku
  142. {
  143. case 'gif':
  144. imagegif($nts, $config['path_thumbnails'] . $filename);
  145. break;
  146. case 'png':
  147. imagepng($nts, $config['path_thumbnails'] . $filename);
  148. break;
  149. default:
  150. imagejpeg($nts, $config['path_thumbnails'] . $filename);
  151. break;
  152. }
  153. imagedestroy($nts); // zniszczenie obrazka
  154. return $config['path_thumbnails'] . $filename;
  155. }
  156.  
  157. ?>
  158.  
  159. </body></html>


Z tym

  1. <?php
  2.  
  3. if (isset($_POST['konto'])==$login and isset($_POST['password'])==$haslo)
  4. {
  5. if ($_POST['konto']==$login && $_POST['password']==$haslo)
  6. {
  7.  
  8. $konto=$_POST['konto'];
  9. $password=$_POST['password'];
  10. $zdjecie=$_POST['zdjecie'];
  11. $opis=$_POST['opis'];
  12. $nazwa=$_POST['nazwa'];
  13. $cena=$_POST['cena'];
  14.  
  15.  
  16. $ile = mysql_query("SELECT * FROM `nowe` WHERE Zdjecie = '$zdjecie'");
  17.  
  18. $ile = mysql_num_rows($ile);
  19.  
  20. if ($ile==0) {
  21.  
  22. $dodanie="INSERT INTO xxx.nowe (nr, Zdjecie, Cena, Opis, Nazwa) VALUES (NULL, '$zdjecie', '$cena', '$opis', '$nazwa')";
  23. mysql_query($dodanie) or die("Wystąpił błąd" );
  24. echo "<br>";
  25. echo('Dodano: <br />Nazwa na stronie:<b>'.$nazwa.'</b><br /> Cena:<b>'.$cena.'</b> <br />
  26. Nazwa w bazie:<b>'.$zdjecie.'</b><br /> Opis:<b>'.$nazwa.'</b><br />');
  27. }
  28. elseif($ile>0) {
  29. echo("Zdjecie o takiej nazwie już istnieje");
  30. }
  31. }
  32. else {
  33. echo("Niepoprawne dane logowania");
  34. echo("<br /><a href='dodawanie.php'>Spróbuj ponownie</a> ");
  35. }
  36. }
  37.  
  38. ?>
  39.  
  40. <form action="dodawanie.php" method="post">
  41. <table width="359" height="195" border="1">
  42. <tr>
  43. <td width="196"><strong>Login</strong></td>
  44. <td width="147"><input name="konto" type="text" value="" /></td>
  45. </tr>
  46. <tr>
  47. <td><strong>Hasło</strong></td>
  48. <td><input name="password" type="password" value="" /></td>
  49. </tr>
  50. <tr>
  51. <td><strong>Nazwa zdjecia</strong></td>
  52. <td><input name="zdjecie" type="text" value="" /></td>
  53. </tr>
  54. <tr>
  55. <td><strong>Nazwa zdjecia na stronę</strong></td>
  56. <td><input name="nazwa" type="text" value="" /></td>
  57. </tr>
  58. <tr>
  59. <td><strong>Cena</strong></td>
  60. <td><input name="cena" type="text" value="" /></td>
  61. </tr>
  62. <tr>
  63. <td><strong>Opis</strong></td>
  64. <td><input name="opis" type="text" value="" /></td>
  65. </tr>
  66. <tr>
  67. <td><input type="submit" value="DODAJ" /></td>
  68. <td>&nbsp;</td>
  69. </tr>
  70. </table>
  71. <a href="index.php"> Powrót do strony głównej </a>
  72. </form>
  73. </body>
  74. </html>


Pierwszy skrypt uploaduje max 3 zdjecia i tworzy ich miniaturki. Chciałbym oba połączyć w 1 tak aby po wpisaniu loginu hasła ( skrypt 2) zaczęło dodawać wybrane zdjęcie i zamiast zmiennej $zdjecie dawało nazwę pliku połączyłem oba ale zamiast pliku po przypisaniu do zmiennej $zdjecie = $_FILES['upload_image']['name'] dodaje mi tylko Array jako nazwę

Go to the top of the page
+Quote Post
darko
post 16.12.2009, 04:45:59
Post #2





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

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


bez wnikania w skrypty napiszę tak: spróbuj dodać $_FILES['upload_image']['name'][0] i kolejne indeksy, zobacz czy będzie działać i zajrzyj tutaj


--------------------
Nie pomagam na pw, tylko forum.
Go to the top of the page
+Quote Post
botnaizi
post 16.12.2009, 19:03:27
Post #3





Grupa: Zarejestrowani
Postów: 72
Pomógł: 0
Dołączył: 8.12.2009

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


dzięki bardzo smile.gif
Widzę że muszę sie dokształcić w tych array'ach bo mnie ostatnio prześladują smile.gif

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: 18.07.2025 - 13:59