Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z dodawaniem zdjęć
Forum PHP.pl > Forum > PHP
lukaasz3
Witam, przeniosłem stronę (strona z ofertami samochodów) ze starego serwera (www.vbiz.pl) na nowy serwer (1und1.de) i miałem kilka problemów z dodawaniem i edytowaniem ogłoszeń, udało mi się z tym uporać ale nie mogę sobie poradzić z dodawaniem zdjęć do oferty, wybieram zdjęcie klikam dalej, komunikat ze ogłoszenie zostało dodane i wszystko jest git ale zdjęcia nie ma, na starym serwerze wszystko działało. Proszę o pomoc. Poniżej wklejam kod php


  1. <?php
  2. $query2 = mysql_query("SELECT nazwa, opis, informacje, cena, foto FROM Truck1");
  3. $values2 = mysql_fetch_row($query2);
  4.  
  5. if(!isset($_SESSION['pca']))
  6. {
  7. echo '<font class=font1><b>Wystąpił problem połączenia!</b><br><b>Informacje dotyczące połączenia zostały zapisane.</b></font>';
  8. }
  9.  
  10. else
  11. {
  12.  
  13. if(!isset($_SESSION['agd']))
  14. {
  15. $_SESSION['agd']=1;
  16.  
  17.  
  18.  
  19.  
  20. if ($opis == "" | $file_name== "") {
  21. echo '<font class=font1><b>Ogłoszenie zostało dodane!</b><br>';
  22.  
  23. //pobranie danych
  24. $query = "SELECT * FROM Truck1";
  25. $result = mysql_query($query) or die("Błąd zapydtania : " . mysql_error());
  26.  
  27. $nazwa = $_POST['nazwa'];
  28. $opis = $_POST['opis'];
  29. $informacje = $_POST['informacje'];
  30. $cena = $_POST['cena'];
  31.  
  32. $result = mysql_query(
  33. "INSERT INTO `Truck1` (`id`, `nazwa`, `opis`, `informacje`, `cena`, `foto`) VALUES ('','$nazwa', '$opis', '$informacje', '$cena', 'brak')")
  34. or die("Query failed");
  35.  
  36. }else {
  37.  
  38. $file_name=StripSlashes($file_name);
  39. $name=$file_name;
  40. $abc=explode(".",$name);
  41. if($abc[1]=="jpg" | $abc[1]=="JPG" | $abc[1]=="JPEG"){
  42. $jpg="1";
  43. }
  44.  
  45. if ($ok == '1' and $file_size >> '0' and $jpg == '1'){ /* działanie tylko jeli użyto formularza */
  46.  
  47. $name = rand(1,99999999);
  48. $file_name = "$domena$name.jpg";
  49. copy("$file", "../graphix/foto1/$file_name"); /* kopiowanie */
  50. unlink("$file");
  51. <font class=font1><b>Ogłoszenie zostało dodane!</b><br>
  52. Plik <b>$file_name</b> został skopiowany.<br>";
  53.  
  54. function resize($imgName, $size, $size2)
  55. {
  56. if (!($img = imagecreatefromjpeg($imgName))) {
  57. echo("<font class=font1>Nie mogę otworzyć pliku: $imgName </font><br>");
  58. return false;
  59. }
  60. $img_w = imagesx($img);
  61. $img_h = imagesy($img);
  62. $ratio = $img_w / $img_h;
  63. if ($ratio > 1)
  64. {
  65. $new_img_w = $size;
  66. $new_img_h = ($size / $ratio);
  67. $new_img_w2 = $size2;
  68. $new_img_h2 = ($size2 / $ratio);
  69. }
  70. else
  71. {
  72. $new_img_w = ($size * $ratio);
  73. $new_img_h = $size;
  74. $new_img_w2 = ($size2 * $ratio);
  75. $new_img_h2 = $size2;
  76. }
  77. $tempImg = imagecreatetruecolor($new_img_w, $new_img_h);
  78. imagecopyresampled($tempImg, $img, 0, 0, 0, 0, $new_img_w, $new_img_h, $img_w, $img_h);
  79. $tempImg2 = imagecreatetruecolor($new_img_w2, $new_img_h2);
  80. imagecopyresampled($tempImg2, $img, 0, 0, 0, 0, $new_img_w2, $new_img_h2, $img_w, $img_h);
  81.  
  82. $name = substr($imgName, 0, strlen($imgName) - 4);
  83. $name = $name."mini.jpg";
  84.  
  85. imagejpeg($tempImg, $name);
  86.  
  87. $name = substr($imgName, 0, strlen($imgName) - 4);
  88. $name = $name."max.jpg";
  89.  
  90. imagejpeg($tempImg2, $name);
  91. }
  92. resize("../graphix/foto1/$file_name", 114, 166);
  93.  
  94.  
  95.  
  96. //pobranie danych
  97. $query = "SELECT * FROM Truck1";
  98. $result = mysql_query($query) or die("Błąd zapydtania : " . mysql_error());
  99.  
  100. $nazwa = $_POST['nazwa'];
  101. $opis = $_POST['opis'];
  102. $informacje = $_POST['informacje'];
  103. $cena = $_POST['cena'];
  104. $name = $_POST['name'];
  105.  
  106. $result = mysql_query(
  107. "INSERT INTO `Truck1` (`id`, `nazwa`, `opis`, `informacje`, `cena`, `foto`) VALUES ('','$nazwa', '$opis', '$informacje', '$cena', '$name')")
  108. or die("Query failed");
  109.  
  110.  
  111. //rozłączenie z DB
  112. mysql_close($link);
  113.  
  114. }
  115. else {
  116. echo"<font class=font1><b>Plik ma zbyt duży rozmiar lub niewłaciwy format!</b></font> <a class=link1 href='java script:Historia(-1)'>wstecz</a>";
  117. }
  118. }
  119.  
  120.  
  121. }
  122. else
  123. {
  124. echo '<font class=font1><b>Wystąpił problem połączenia!</b><br><b>Informacje dotyczące połączenia zostały zapisane.</b></font>';
  125. }
  126.  
  127. $_SESSION = array();
  128.  
  129. $_SESSION['kbc']=1;
  130. }
  131.  
  132. ?>
Korab
Sformatuj ten kod bo trudno coś z niego odczytać. Polecam znaczniki [ php ] i [/ php ]
Czy katalog /graphix/foto1/ istnieje?
Czy skrypt ma prawo zapisu do tego katalogu?
PS. Kod
  1. $abc=explode(".",$name);
  2. if($abc[1]=="jpg" | $abc[1]=="JPG" | $abc[1]=="JPEG"){
  3. $jpg="1";
  4. }

da błędny rezultat dla pliku o nazwie typu zdjecie.fajne.jpg. Najprościej poprawić to na
  1. $abc = explode(".",$name);
  2. $last = count($abc)-1;
  3. if (strtolower($abc[$last])=="jpg")
  4. ...

A najlepiej będzie skorzystać z innej metody niż rozpoznawanie typu pliku po rozszerzeniu.
lukaasz3
Folder i prawa zapisu są ustawione.

Stary serwer miał wersje php "PHP Version 4.4.4-8+etch6" nowy ma juz 5.2


po dodaniu na samej górze kodu:

  1. <?PHP
  2. ini_set( 'display_errors', 'On' );
  3. error_reporting( E_ALL );
  4. ?>


i próbie zapisu wyświetla się taki błąd:

Kod
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /homepages/39/d43252447/htdocs/truckbes/admapanel/dodawanie4.php:6) in /homepages/39/d43252447/htdocs/truckbes/admapanel/dodawanie4.php on line 7



Kod
» NOWA OFERTA POJAZDU


Notice: Undefined variable: opis in /homepages/39/d43252447/htdocs/truckbes/admapanel/dodawanie4.php on line 88

Notice: Undefined variable: file_name in /homepages/39/d43252447/htdocs/truckbes/admapanel/dodawanie4.php on line 88
Ogłoszenie zostało dodane!
_Borys_
session_start() na początku skryptu, zaraz po <?php
oraz nie masz zdefiniowanych tych zmiennych $opis oraz $file_name przed if-em gdzie sprawdzasz czy są puste.
Korab
Ten pierwszy błąd może się też wiązać z niewłaściwym kodowaniem, jeżeli jest inne niż UTF-8 bez BOM.
lukaasz3
udało się wyeliminować pierwszy błąd, session start miało jedna linie wolną od góry, zostały teraz takie błędy:
Kod
Notice: A session had already been started - ignoring session_start() in /homepages/39/d43252447/htdocs/truckbes/admapanel/dodawanie4.php on line 79

Notice: Undefined variable: opis in /homepages/39/d43252447/htdocs/truckbes/admapanel/dodawanie4.php on line 86

Notice: Undefined variable: file_name in /homepages/39/d43252447/htdocs/truckbes/admapanel/dodawanie4.php on line 86
Ogłoszenie zostało dodane!



co do zmiennych to nie wiem jak to zrobić, ten skrypt napisała w 2006 roku jakaś firma i do teraz działało na serwerze z php4 ale po przeniesieniu plików na nowy serwer są własnie takie błędy, po dodaniu np: nowej oferty wyskakuje komunikat o poprawnym dodaniu ale nic się nie zapisywało do bazy danych, podobnie było z edycja danych.
Dejmien_85
Cytat(lukaasz3 @ 2.07.2013, 00:00:12 ) *
Notice: Undefined variable


Zmienne $opis oraz $file_name nie są zdefiniowane. Ogólnie ten skrypt pozostawia troszkę do życzenia, widać że został napisany z przekonaniem: "wszytko będzie działać!". Przykładem tego jest najpierw wyświetlanie informacji o dodaniu ogłoszenia, a następnie wykonanie próby dodania ogłoszenia - that's brilliant! cool.gif

Ten plik to tylko jakaś część całości - nie wiadomo jak reszta została napisana. Podstawowe pytanie - dlaczego w linii nr 21 skrypt sprawdza zmienne $opis oraz &file_name, skoro wcześniej nie zostały nawet zdefiniowane w tym dokumencie? Ten plik jest pewnie includowany do innego (którego także trzeba przeanalizować).

I co najważniejsze - jeśli wrzucasz info z debugera, to przynajmniej wklej sformatowany kod pliku dodawanie4.php, bo info z debugera ma sie nijak do tego co jest w kodzie wklejonym przez Ciebie w pierwszym poście (numery linii).

Jeśli chcesz, aby Ci ktoś pomógł, wtedy nie zniechęcaj do tego ludzi (sformatuj kod, tu musi być to samo co w Twoim pliku).

PS Ogólnie to polecam Ci zapoznanie się z takimi tematami jak TEN
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.