Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Formularz dodawania zdjęcia, Skalowanie
Barcelona
post 9.07.2010, 12:15:54
Post #1





Grupa: Zarejestrowani
Postów: 322
Pomógł: 15
Dołączył: 29.01.2010

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


Witam, mam taki problem i prośbę. Otóż mam skrypt, który dodaje ogłoszenie. W formularzu mam opcje która dodaje zdjęcie do ogłoszenia. To zdjęcie jest automatycznie przeskalowywane do miniatury. Problem polega na tym że jak dodaje ogłoszenie bez foty to to ogłoszenie nie doda się do bazy danych i nie wiem jak rozwiązać ten problem. Druga zaś sprawa chciałbym dodawać więcej zdjęć niż tylko jedno, tak żeby również było skalowane do miniatury.

Dodam że formularz robiłem sam, z dodawanie pliku pomagał mi kumpel i teraz nie wiem jak się za to zabrać.

Oto plik z dodawaniem.

  1. <?
  2. function f_rand($ile) {
  3. for ($i=1; $i<=$ile; $i++)
  4. {$l_rand .= dechex(mt_rand());}
  5. return $l_rand;
  6. }
  7.  
  8.  
  9. function resize($foto, $szerokosc, $folder, $napis) {
  10.  
  11. $fotos = "./tmp/".$foto;
  12. $mini = $folder."/".$foto;
  13. if (!file_exists($mini)) {
  14. $img = imagecreatefromjpeg($fotos);
  15. $width = imagesx($img); // szerokosc jpga
  16. $height = imagesy($img); // wysokosc jpga
  17.  
  18. if ($width > $szerokosc || $height > $szerokosc){
  19. //poziomy / szerokosc
  20. if ($width>=$height) {$width_mini = $szerokosc;
  21. $x = $width/$width_mini;
  22. $height_mini = $height/$x;
  23. $litery_wielkosc = $width/60;}
  24.  
  25. //pionowy / wysokosc
  26. if ($width<$height) {$height_mini = $szerokosc;
  27. $x = $height/$height_mini;
  28. $width_mini = $width/$x;
  29. $litery_wielkosc = $height/60;}
  30.  
  31. $img_mini = imagecreatetruecolor($width_mini, $height_mini);
  32. }
  33. else
  34. {
  35. $img_mini = $img;
  36. }
  37. $txt = $napis;
  38. $fontpath = realpath('.');
  39. $kolor_tla = imagecolorallocate ( $img, 255, 255, 255 );
  40.  
  41. imagecopyresampled($img_mini, $img, 0, 0, 0, 0, $width_mini , $height_mini, $width, $height);
  42. imagejpeg($img_mini, $mini, 100);
  43. @imagedestroy($img);
  44. @imagedestroy($img_mini);
  45. }
  46. }
  47.  
  48.  
  49.  
  50. if ($_SESSION["zalogowany"]=="tak") {
  51. include('menu.php');
  52. $tytul = mysql_real_escape_string (trim($_POST['tytul']));
  53. $data = mysql_real_escape_string (trim($_POST['data']));
  54. $tresc = $_POST['tresc'];
  55. $stan = mysql_real_escape_string (trim($_POST['stan']));
  56. $rodzaj = mysql_real_escape_string (trim($_POST['rodzaj']));
  57. $marka = mysql_real_escape_string (trim($_POST['marka']));
  58. $model = mysql_real_escape_string (trim($_POST['model']));
  59. $rocznik = mysql_real_escape_string (trim($_POST['rocznik']));
  60. $miejsca = mysql_real_escape_string (trim($_POST['miejsca']));
  61. $klimatyzacja = mysql_real_escape_string (trim($_POST['klimatyzacja']));
  62. $rejestracja = mysql_real_escape_string (trim($_POST['rejestracja']));
  63. $cena = mysql_real_escape_string (trim($_POST['cena']));
  64. $ul_plik = mysql_real_escape_string (trim($_POST['foto']));
  65.  
  66.  
  67. if (strlen($tytul)>2) {
  68.  
  69.  
  70. ////////////////////////////////////////
  71.  
  72. //ustawienie wielkosci zmniejszanych obrazow
  73. $w_1 = 175;
  74. $w_2 = 400;
  75.  
  76. if ($_FILES){
  77. foreach( $_FILES as $ul_plik )
  78. {
  79. if( is_uploaded_file( $ul_plik['tmp_name'] ) )
  80. {
  81. $rand = f_rand(3);
  82. $new_name = $rand.".jpg";
  83. $tmp_name = $ul_plik['tmp_name'];
  84. $name = $ul_plik['name'];
  85.  
  86. copy($tmp_name, './tmp/'.$new_name);
  87. resize($new_name,$w_1,"./img/mini/", "");
  88. resize($new_name,$w_2,"./img/", "");
  89.  
  90.  
  91. unlink('./tmp/'.$new_name);
  92.  
  93.  
  94. INSERT INTO ogloszenia (tytul, data, tresc, stan, rodzaj, marka, model, rocznik, miejsca, klimatyzacja, rejestracja,obrazek,cena)
  95. VALUES ('$tytul','$data','$tresc','$stan','$rodzaj','$marka','$model','$rocznik','$miejsca','$klimatyzacja','$rejestracja','$rand','$cena')
  96. ");
  97.  
  98.  
  99. }
  100. }
  101.  
  102. }
  103. echo "
  104. <br><div class=\"potwierdzenie\"><center>Ogłoszenie zostało dodane</center>
  105. </div>";
  106.  
  107.  
  108. }
  109. $data = date("Y-m-d H:i:s");
  110. echo <<<KONIEC
  111. <br>
  112. <form action="" method="post" enctype="multipart/form-data" class="uniForm">
  113.  
  114. <fieldset><legend>Dane Samochodu</legend>
  115. <div class="ctrlHolder">
  116.   <label for="foto">Dodaj zdjęcie do ogłoszenia:</label><br>
  117.   <input type="file" name="foto"><br>
  118.   <label for="marka">Podaj marke samochodu:</label>
  119.   <input type="text" name="marka" style="width:100%;" class="textInput small" />
  120.   <label for="model">Podaj model samochodu:</label>
  121.   <input type="text" name="model" style="width:100%;" class="textInput small" />
  122.   <label for="rocznik">Podaj rocznik samochodu:</label>
  123.   <input type="text" name="rocznik" style="width:100%;" class="textInput small" />
  124.   <label for="miejsca">Podaj ilo?ć miejsc siedz?cych:</label>
  125.   <input type="text" name="miejsca" style="width:100%;" class="textInput small" />
  126.   <label for="klimatyzacja">Klimatyzacja:</label><br>
  127.   <select id="" name="klimatyzacja"><optgroup label='Wybierz jedn? opcję'><option value='TAK'>TAK</option><option value='NIE'>NIE</option></optgroup></select><br>
  128.   <label for="rejestracja">Podaj rejestracje samochodu*:</label>
  129.   <input type="text" name="rejestracja" style="width:100%;" class="textInput small" />
  130.   </div></fieldset>
  131.   <fieldset><legend>Ogłoszenie</legend>
  132. <div class="ctrlHolder">
  133.   <label for="tytul">Podaj tytuł ogłoszenia:</label>
  134.   <input type="text" name="tytul" style="width:100%;" class="textInput small" />
  135.   <label for="model">Podaj date ogłoszenia:</label>
  136.   <input type="text" name="data" style="width:100%;" class="textInput small" value="$data" />
  137.   <label for="rocznik">Napisz tre?ć ogłoszenia:</label><br>
  138.   <textarea name="tresc" id="editor"></textarea><br>
  139. KONIEC;
  140. ?>
  141. <script type="text/javascript">
  142. //<![CDATA[
  143.  
  144. CKEDITOR.replace( 'editor',
  145. {
  146. fullPage : true
  147. });
  148.  
  149. //]]>
  150. </script>
  151. <?
  152. echo <<<KONIEC
  153. <label for="cena">Podaj cene (zł):</label>
  154.   <input type="text" name="cena" style="width:100%;" class="textInput small" />
  155. </div></fieldset>
  156. <fieldset><legend>Informacje dodatkowe</legend>
  157. <div class="ctrlHolder">
  158. <p class="label">
  159.   Wybierz rodzaj ogłoszenia, oraz czy ma on zostać wy?wietlony na stronie
  160.   </p><table width="100%">
  161.  
  162.  
  163. <tr><td align="middle"><ul class="alternate">
  164.   <li><label for="rodzaj" align="top">Rodzaj <select id="" name="rodzaj"><optgroup label='Wybierz jedn? opcję'><option value='wynajem_autobusow'>Wynajem autobusów</option><option value='wynajem_busow'>Wynajem busów</option><option value='sprzedaz_busow'>Sprzedaż busów</option><option value='transport_ludzi'>Transport ludzi</option></optgroup></select></label></li></td><td align="middle">
  165.   <li><label for="stan" align="middle">Stan <select id="" name="stan"><optgroup label='Aktualne'><option value='1'>Ogłoszenie widoczne</optgroup><optgroup label='Wybierz jedn? opcję'><option value='1'>Ogłoszenie widoczne</option><option value='0'>Ogłoszenie niewidoczne</option></optgroup></select></label></li>
  166.   </ul></td></tr></table>
  167.   </div></fieldset>
  168.   <div class="buttonHolder">
  169. <input type="submit" value=" wy?lij" class="primaryAction" />
  170. </div>
  171. KONIEC;
  172. }
  173. else {
  174. echo "<div class=\"potwierdzenie\"><center>Proszę się zalogować!</center>
  175. </div>";
  176.  
  177. }
  178. ?>


Proszę o pomoc

Ten post edytował Barcelona 9.07.2010, 12:16:32
Go to the top of the page
+Quote Post

Posty w temacie


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: 19.07.2025 - 17:27