Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Upload...
Forum PHP.pl > Forum > Przedszkole
MateuszS
Hey, mam problem z którym się gryzę z 2h i mam już dość... chyba jakiś bug PHP, mianowicie mam cały formularz dodawania hoteli, tam jest dużo text inputów i file inputów i to all znakomicie mi działa. Ale doszło że muszę dodać jeszcze jeden input i obsługę tego pliku. No to analogicznie tak jak zawsze robiłem robię,

dodałem w obrębie forma

  1. echo "<br /><b>Logo</b><input type='file' name='logo' /><br /><br />";


potem oczywiście obsługa

  1. $logo_tmp = $_FILES["logo"]["tmp_name"];
  2. $logo_nazwa = str_replace(" ","_", $_FILES["logo"]["name"]);
  3. $logo_error = $_FILES["logo"]["error"];
  4. $logo_typ = $_FILES["logo"]["type"];
  5.  
  6.  
  7. if($logo_error == 0) {
  8. if(in_array($logo_typ, $typy_obrazkow)) {
  9. //wnetrze cale
  10. } else {
  11. echo " Logo ma niepoprawny format i nie zostało dodane.<br />";
  12. }
  13. }


ale tego pliku nie wysyła, nawet printując tablicę $_FILES nie mam tam wartości i kluczy dla tego inputa z logo. Jakby w ogóle nie istniał. Poprzednie pliki są, tego nie ma, komentowałem większość kodu, zostawiałem tylko ten z logiem i to samo... wtf? Są dwie możliwości albo jakiś fail z mojej strony że po 2 godzinach się nie skminiłem albo bug php... w to drugie nie chce mi się wierzyć ale i w to pierwsze...

Spawnm
Pokaż cały kod formularza to może coś znajdziemy wink.gif
W $_FILES inne pliki znajduje?
MateuszS
Tak znajduje, wszystko inne działa.


Nie przeraźcie się ale ten kod już ma trochę lat i mały bur... nieporządek się zrobił.

usunłem smile.gif
Spawnm
WTF ?! biggrin.gif
plik z <input type='file' name='flash2' /> znajduje ?
MateuszS
To też nie działa pewnie z tego samego powodu co logo (też to dziś dodałem) dlatego napisałem tylko o logo żeby nie mącić. Poprzednie wszystkie pliki z tych setek inputów wcześniejszych co je tam widzisz w kodzie działają,

Teraz będzie dobre:
Zrezygnowany, cały w pianie z nudów albo i z desperacji dałem ten fragment kodu nowy zaraz na początek formularza... i działa. Ktoś mi powie czemu tak jest? Bug?

Dobra, wracam. Nadal się sypie. Tutaj jest kod dodawania wpisu

http://wklej.org/id/581683/

I teraz tak:
Dla przypomnienia. Wszystko elegancko działało, dopuki nie dodałem dodawania Loga oraz 3 fotek do flasha. Mianowicie chodzi o ten kod:

  1. ## form ##
  2. echo "<br /><b>Logo</b><input type='file' name='logo' /><br /><br />";
  3. echo "<b>Zdjęcia flash</b><br />Zdjęcie 1: <input type='file' name='flash1' />
  4. <br />Zdjęcie 2: <input type='file' name='flash2' />
  5. <br />Zdjęcie 3: <input type='file' name='flash3' /><br /><br />";
  6.  
  7. ## i obsluga
  8.  
  9. $logo_tmp = $_FILES["logo"]["tmp_name"];
  10. $logo_nazwa = str_replace(" ","_", $_FILES["logo"]["name"]);
  11. $logo_error = $_FILES["logo"]["error"];
  12. $logo_typ = $_FILES["logo"]["type"];
  13.  
  14.  
  15. if($logo_error == 0) {
  16. if(in_array($logo_typ, $typy_obrazkow)) {
  17. $foldery = utworz_foldery($nazwa_folderu, $folder);
  18. $sciezka = "../pliki/".$folder."/".$nazwa_folderu."/logo/".$logo_nazwa;
  19.  
  20. if(is_uploaded_file($logo_tmp)) {
  21. move_uploaded_file($logo_tmp, $sciezka);
  22. $zapytanie = mysql_query("UPDATE `tabela_obiekty_hotelarskie` SET `Logo`='".$logo_nazwa."' WHERE `Time`='".$time."'") or die(mysql_error());
  23. } else {
  24. echo " Błąd przy uploadzie loga.<br />";
  25. }
  26. } else {
  27. echo " Logo ma niepoprawny format i nie zostało dodane.<br />";
  28. }
  29. }
  30.  
  31.  
  32.  
  33. for($i=1; $i<=3; $i++) {
  34. utworz_foldery($nazwa_folderu, $folder);
  35. $flash[$i]["name"] = str_replace(" ", "_", strip_tags($_FILES["flash".$i]["name"]));
  36. $flash[$i]["tmp"] = $_FILES["flash".$i]["tmp_name"];
  37. $flash[$i]["type"] = $_FILES["flash".$i]["type"];
  38. $flash[$i]["error"] = $_FILES["flash".$i]["error"];
  39.  
  40. $sciezka = "../pliki/".$folder."/".$nazwa_folderu."/".$flash[$i]["name"];
  41. $sciezka_docelowa = "../pliki/".$folder."/".$nazwa_folderu."/flash/".$flash[$i]["name"];
  42.  
  43. if($flash[$i]["error"]==0) {
  44. if(in_array($flash[$i]["type"], $typy_obrazkow)) {
  45. if(is_uploaded_file($flash[$i]["tmp"])) {
  46. move_uploaded_file($flash[$i]["tmp"], $sciezka);
  47. ResizeFlashIMG($sciezka, $sciezka_docelowa);
  48. $zapytanie = mysql_query("UPDATE `tabela_obiekty_hotelarskie` SET `Flash_".$i."`='".$flash[$i]["name"]."' WHERE `Time`='".$time."'") or die(mysql_error());
  49. @ unlink($sciezka);
  50. } else {
  51. echo "Błąd przy uploadzie obrazka. Zdjęcie flash nr ".$i." nie zostało wysłane.";
  52. }
  53. } else {
  54. echo "Nieprawidłowe rozszerzenie obrazka. Zdjęcie flash nr ".$i." nie zostało wysłane.";
  55. }
  56. }
  57. }
  58.  


Po dodaniu tego kodu, nie działa mi dodawanie zdjęć do wyposażenia obiektu, tzn. przesyłana jest pusta tablica $_FILES, tam gdzie ma być 'pełna' nie jest, natomiast Logo, te 3 zdjęcia i zdjęcia do rodzai pokoi (skrypt identyczny jak dla wyposażenia, można porównać w kodzie) działają i przesyłają się. Problem wg mnie nie leży w moim skrypcie tylko na linii input -> POST -> $_FILES. Zmieniałem ustawienia w php.ini, zwiększałem limity jednak to nie pomogło... Po zakomentowaniu w/w kodu wszystko działa (ale tylko przy dodawaniu wpisu, przy edycji zakomentowywanie nie pomaga).

Zauważyłem że ucina mi tablicę $_FILES

  1. [logon] => Array ( [name] => [type] => [tmp_name] => [error] => 4 [size] => 0 )
  2. [flash_1] => Array ( [name] => [type] => [tmp_name] => [error] => 4 [size] => 0 )
  3. [flash_2] => Array ( [name] => [type] => [tmp_name] => [error] => 4 [size] => 0 )
  4. [flash_3] => Array ( [name] => [type] => [tmp_name] => [error] => 4 [size] => 0 )
  5.  
  6. [zdj_pokoju] => Array(
  7. [name] => Array ( [9] => Array ( [1] => Jellyfish.jpg [2] => [3] => )
  8. [10] => Array ( [1] => [2] => [3] => )
  9. [11] => Array ( [1] => [2] => [3] => )
  10. [12] => Array ( [1] => [2] => [3] => )
  11. [13] => Array ( [1] => [2] => [3] => ) )
  12. [type] => Array ( [9] => Array ( [1] => image/jpeg [2] => [3] => )
  13. [10] => Array ( [1] => [2] => [3] => )
  14. [11] => Array ( [1] => [2] => [3] => )
  15. [12] => Array ( [1] => [2] => [3] => )
  16. [13] => Array ( [1] => [2] => [3] => ) )
  17. [tmp_name] => Array ( [9] => Array ( [1] => /srv/tmp/phpfMl0eH [2] => [3] => )
  18. [10] => Array ( [1] => [2] => [3] => )
  19. [11] => Array ( [1] => [2] => [3] => )
  20. [12] => Array ( [1] => [2] => [3] => )
  21. [13] => Array ( [1] => [2] => [3] => ) )
  22. [error] => Array ( [9] => Array ( [1] => 0 [2] => 4 [3] => 4 )
  23. [10] => Array ( [1] => 4 [2] => 4 [3] => 4 )
  24. [11] => Array ( [1] => 4 [2] => 4 [3] => 4 )
  25. [12] => Array ( [1] => 4 [2] => 4 [3] => 4 )
  26. [13] => Array ( [1] => 4 [2] => 4 [3] => 4 ) )
  27. [size] => Array ( [9] => Array ( [1] => 775702 [2] => 0 [3] => 0 )
  28. [10] => Array ( [1] => 0 [2] => 0 [3] => 0 )
  29. [11] => Array ( [1] => 0 [2] => 0 [3] => 0 )
  30. [12] => Array ( [1] => 0 [2] => 0 [3] => 0 )
  31. [13] => Array ( [1] => 0 [2] => 0 [3] => 0 ) ) )
  32. [zdj_ob] => Array (
  33. [name] => Array ( [9] => Array ( [1] => Lighthouse.jpg ) )
  34. [type] => Array ( [9] => Array ( [1] => image/jpeg ) )
  35. [tmp_name] => Array ( [9] => Array ( [1] => /srv/tmp/phpVJoJBJ ) )
  36. [error] => Array ( [9] => Array ( [1] => 0 ) ) [size] => Array ( [1] => Array ( [1] => 561276 ) ) ) )

kluczy powinno być więcej po [zdj_ob] niż [zdj_pokoju] i chyba różnią sie strukturą a nie powinny. Do zdj_ob przesylalem 2 zdjecia a tu widać jedno i w dodatku struktura jest zła tablicy, powinna być taka jak wyżej przy zdj_pokoju
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.