Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> [PHP]Dziwny upload
marcio
post
Post #1





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


Witam mam nadzieje ze ktos pomoze bo jest to przed ostatnia rzecz zeby skonczyc moj projekt.
Problem polega na tym ze mam upload ktory nie dziala sad.gif na localhost jest blad "Blad podczas upload'u" jednak na innym servie jest blad "Katalog /asd/wer/ nie ma uprawnien" i do tad jest wszystko dobrze bo u mnie dany katalog ma chmod 777 jednak nie wiem dlaczego jest tamten blad oto KOD;
  1. <?php
  2. function upload() {
  3.  
  4. echo('<form method="post" enctype="multipart/form-data" action="'.$_SERVER['PHP_SELF'].'">
  5. <table align="center" width="75%" style="border: 1px dotted white;">
  6. <tr><td align="center"><b>Upload</b></td></tr>
  7. <tr><td align="center">
  8. <input type="hidden" name="MAX_FILE_SIZE" value="999999999">
  9. Dodaj plik: <input type="file" name="up_file" style="font-style:italic; background-color:#000000; color:#00A54E;"> <input type="submit" name="dodaj" value="Dodaj" style="font-style:italic; background-color:#000000; color:#00A54E;">
  10. </td></tr>
  11. ');
  12.  
  13. if(isset($_POST['dodaj'])) {
  14.  
  15. $uploaded_file = $_FILES['up_file']['tmp_name'];
  16. $dir_r = getcwd();
  17.  
  18. if(substr($dir_r, -1, 1) != '/') $dir_r .= '/';
  19. $dir = $dir_r.$_FILES['up_file']['name'];
  20.  
  21.  
  22. if(is_writable($dir)) { 
  23.  
  24.  if(is_uploaded_file($uploaded_file)) {
  25.  
  26. if(move_uploaded_file($uploaded_file, $dir))
  27.  
  28.  echo('<tr><td align="center"><b style="color:#f00">Uploadowano '.$_FILES['up_file']['name'].' do katalogu '.$dir_r.'</b></td><tr></table></form><br>');
  29.  }
  30.  
  31. else echo('<tr><td align="center"><b style="color:#f00">Blad podczas upload'u</b></td></tr></table></form><br>');
  32.  
  33.  }
  34.  
  35. else echo('<tr><td align="center"><b style="color:#f00">Katalog '.$dir_r.' nie ma uprawnien</b></td></tr></table></form><br>');
  36.  
  37.  }
  38. }
  39. ?>

Jednak nic chcialbym zebyscie chociaz dali wskazowke nie mowie ze mi macie kod poprawiac

P.S czy nie idzie tego jakos "oszukac" zeby znajdywal w systemie katalog z prawami rwx bo nikt nie ma praw 777 na katalogu /var/www/ smile.gif

To jak to bardzo wazne dla mnie a nie wiem juz wkoncu co jest zle smile.gif

Zmienilem troche kod probowalem sobie tez wyswietlac zmienne $_FILES ale sa puste nie wiem dlaczego katalog sie tworzy ma dobry chmod ale nic
  1. <?php
  2. function upload() {
  3.  
  4. echo('<form method="post" enctype="multipart/form-data" action="'.$_SERVER['PHP_SELF'].'">
  5. <table align="center" width="75%" style="border: 1px dotted white;">
  6. <tr><td align="center"><b>Upload</b></td></tr>
  7. <tr><td align="center">
  8. <input type="hidden" name="MAX_FILE_SIZE" value="999999999">
  9. Dodaj plik: <input type="file" name="up_file" style="font-style:italic; background-color:#000000; color:#00A54E;"> <input type="submit" name="dodaj" value="Dodaj" style="font-style:italic; background-color:#000000; color:#00A54E;">
  10. </td></tr>
  11. ');
  12.  
  13. if(isset($_POST['dodaj'])) {
  14.  
  15. $uploaded_file = $_FILES['up_file']['tmp_name'];
  16. $dir_r = getcwd();
  17.  
  18. if(substr($dir_r, -1, 1) != '/') $dir_r .= '/';
  19.  
  20.  if(!file_exists('/var/www/tmp_upload/')) {
  21. $umask_r = umask(0);
  22.  $dir = mkdir($dir_r.'tmp_upload', 0777);
  23. umask($umask_r);
  24. }
  25.  
  26. $nowy_dir = $dir.$_FILES['up_file']['name'];
  27. echo($_FILES['up_file']['tmp_name'].'-'.$_FILES['up_file']['name']);
  28.  
  29.  
  30. if(is_writable($nowy_dir)) { 
  31.  
  32.  if(is_uploaded_file($uploaded_file)) {
  33.  
  34. if(move_uploaded_file($uploaded_file, $nowy_dir))
  35.  
  36.  echo('<tr><td align="center"><b style="color:#f00">Uploadowano '.$_FILES['up_file']['name'].' do katalogu '.$dir_r.'tmp_upload</b></td><tr></table></form><br>');
  37.  }
  38.  
  39. else echo('<tr><td align="center"><b style="color:#f00">Blad podczas upload'u</b></td></tr></table></form><br>');
  40.  
  41.  }
  42.  
  43. else echo('<tr><td align="center"><b style="color:#f00">Katalog '.$dir_r.'tmp_upload nie ma uprawnien</b></td></tr></table></form><br>');
  44.  
  45.  }
  46. }
  47. ?>

W php.ini upoad jest wloczony oto i on:
Cytat
;;;;;;;;;;;;;;;;
; File Uploads ;
;;;;;;;;;;;;;;;;

; Whether to allow HTTP file uploads.
file_uploads = On

; Temporary directory for HTTP uploaded files (will use system default if not
; specified).
;upload_tmp_dir =

; Maximum allowed size for uploaded files.
upload_max_filesize = 2M

Sam nie wiem dlaczego zmienne sa puste niestety na zadnym forum nie znalazlem podobnego problemu

questionmark.gifquestionmark.gif


--------------------
Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/
Moj blog
Go to the top of the page
+Quote Post
nowotny
post
Post #2





Grupa: Zarejestrowani
Postów: 875
Pomógł: 122
Dołączył: 2.02.2008

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


Czy plik się fizycznie kopiuje na serwer do katalogu tymczasowego...?
Go to the top of the page
+Quote Post
marcio
post
Post #3





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


TZN??Do katalogu /var/tmp/ bo to jest pierwszy raz jak robie upload wiec nie wiem o jaki katalog chodzi smile.gif


--------------------
Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/
Moj blog
Go to the top of the page
+Quote Post
misiek08
post
Post #4





Grupa: Zarejestrowani
Postów: 91
Pomógł: 6
Dołączył: 2.02.2008

Ostrzeżenie: (10%)
X----


Do jakiegoś tmp najprawdopodobniej var/tmp/
Go to the top of the page
+Quote Post
nowotny
post
Post #5





Grupa: Zarejestrowani
Postów: 875
Pomógł: 122
Dołączył: 2.02.2008

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


Heh... no ja też w sumie nie wiem... zawsze mi działało więc nie dociekałem... smile.gif

Spróbuj ustawić sobie w php.ini upload_tmp_dir = na jakiś do którego php ma dostęp może...
Go to the top of the page
+Quote Post
marcio
post
Post #6





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


Jak widac w php.ini te miejsce jest puste ale na jaki katalog to dac /var/tmp??

P.S jakie bylo polecenie w linux'ie zeby edytowac php.ini

No i mam:
Cytat
;;;;;;;;;;;;;;;;
; File Uploads ;
;;;;;;;;;;;;;;;;

; Whether to allow HTTP file uploads.
file_uploads = On

; Temporary directory for HTTP uploaded files (will use system default if not
; specified).
upload_tmp_dir = /var/tmp/

; Maximum allowed size for uploaded files.
upload_max_filesize = 2M

Jednak dalej nic sad.gif


--------------------
Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/
Moj blog
Go to the top of the page
+Quote Post
nowotny
post
Post #7





Grupa: Zarejestrowani
Postów: 875
Pomógł: 122
Dołączył: 2.02.2008

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


Tutaj jest dużo sugestii odnośnie tego: http://getluky.net/2004/10/04/apachephp-_f...eriously-empty/
Poczytaj, popróbuj... może coś zaskoczy...
Go to the top of the page
+Quote Post
marcio
post
Post #8





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


Mam nadzieje ze mnie zrozumia bo moj angielski nie jest za dobry tym bardziej w takich sprawach tongue.gif
http://getluky.net/2004/10/04/apachephp-_f...#comment-253431

P.S moze ktos ma inne propozycje


--------------------
Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/
Moj blog
Go to the top of the page
+Quote Post
erix
post
Post #9





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




  1. <?php
  2. $dir = $dir_r.$_FILES['up_file']['name'];
  3.  
  4.  
  5. if(is_writable($dir)) {
  6. ?>


is_writable" title="Zobacz w manualu PHP" target="_manual: Returns TRUE if the filename exists and is writable.

Jako argument podajesz ścieżkę do jeszcze NIE ISTNIEJĄCEGO pliku, więc zawsze zwraca false

Ten post edytował erix 3.02.2008, 10:24:53


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
nowotny
post
Post #10





Grupa: Zarejestrowani
Postów: 875
Pomógł: 122
Dołączył: 2.02.2008

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


Cytat(erix @ 3.02.2008, 10:23:40 ) *
is_writable" title="Zobacz w manualu PHP" target="_manual: Returns TRUE if the filename exists and is writable.

Jako argument podajesz ścieżkę do jeszcze NIE ISTNIEJĄCEGO pliku, więc zawsze zwraca false

No dobra, ale to nie rozwiązuje kwestii pustej tablicy $_FILES... :/

Chyba że marcio sprawdzał to już po tym warunku... smile.gif
Go to the top of the page
+Quote Post
marcio
post
Post #11





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


A wiec zmienilem kod tzn zrobilem wszystko na zmiennych zeby bylo bardziej przejzyste
  1. <?php
  2. function upload() {
  3.  
  4. echo('<form method="post" enctype="multipart/form-data" action="'.$_SERVER['PHP_SELF'].'">
  5. <table align="center" width="75%" style="border: 1px dotted white;">
  6. <tr><td align="center"><b>Upload</b></td></tr>
  7. <tr><td align="center">
  8. <input type="hidden" name="MAX_FILE_SIZE" value="999999999">
  9. Dodaj plik: <input type="file" name="up_file" style="font-style:italic; background-color:#000000; color:#00A54E;"> <input type="submit" name="dodaj" value="Dodaj" style="font-style:italic; background-color:#000000; color:#00A54E;">
  10. </td></tr>
  11. ');
  12.  
  13. if(isset($_POST['dodaj'])) {
  14.  
  15. $uploaded_file = $_FILES['up_file']['tmp_name'];
  16. $dir_r = getcwd();
  17. $tmp_dir = 'tmp_upload/';
  18.  
  19.  
  20. if(substr($dir_r, -1, 1) != '/') $dir_r .= '/';
  21.  
  22.  if(!file_exists($dir_r.$tmp_dir)) {
  23. $umask_r = umask(0);
  24.  $dir = mkdir($dir_r.$tmp_dir, 0777);
  25. umask($umask_r);
  26. }
  27.  
  28. $nowy_dir = $dir_r.$tmp_dir.$_FILES['up_file']['name'];
  29. echo($_FILES['up_file']['tmp_name'].'-'.$_FILES['up_file']['name'].'****'.$nowy_dir.'----'.$tmp_dir);
  30.  
  31.  
  32. //if(is_writable($nowy_dir)) { 
  33.  
  34.  if(is_uploaded_file($uploaded_file)) {
  35.  
  36. if(move_uploaded_file($uploaded_file, $nowy_dir))
  37.  
  38.  echo('<tr><td align="center"><b style="color:#f00">Uploadowano '.$_FILES['up_file']['name'].' do katalogu '.$dir_r.'tmp_upload</b></td><tr></table></form><br>');
  39.  }
  40.  
  41. else echo('<tr><td align="center"><b style="color:#f00">Blad podczas upload'u</b></td></tr></table></form><br>');
  42.  
  43.  }
  44.  
  45. //else echo('<tr><td align="center"><b style="color:#f00">Katalog '.$dir_r.'tmp_upload nie ma uprawnien</b></td></tr></table></form><br>');
  46.  
  47. // }
  48. }
  49. ?>

nawet jak nie zakomentuje tego if z is_writable to jest to samo blad podczac uploadu
To jest wynik tego echo ze wszystkimi zmiennymi:
Cytat
-****/var/www/tmp_upload/----tmp_upload/

Czyli zmienna $tmp_dir jest dobra zmienna $nowy_dir jak widac sciezka jest dobra ale juz $_FILES['up_file']['name'] nie ma czyli dalej sa puste te zmienne sad.gif a najlepisze jest to ze nikt nic nie wiem ale dzieki za dobra wole mam nadzieje ze bedziecie mieli jeszcze jakies pomysly


--------------------
Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/
Moj blog
Go to the top of the page
+Quote Post
nowotny
post
Post #12





Grupa: Zarejestrowani
Postów: 875
Pomógł: 122
Dołączył: 2.02.2008

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


A co ci pokazuje print_r($_FILES);... coś ciekawego czy jest puste...?
Go to the top of the page
+Quote Post
marcio
post
Post #13





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


Cytat
-****/var/www/tmp_upload/----tmp_upload/Array ( ) Array ( )

Nic ciekawego nie pokazuje sad.gif wszystko puste


--------------------
Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/
Moj blog
Go to the top of the page
+Quote Post
nowotny
post
Post #14





Grupa: Zarejestrowani
Postów: 875
Pomógł: 122
Dołączył: 2.02.2008

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


No to jak masz dostęp to poszukaj w logach serwera... ja już nie mam więcej pomysłów...
Go to the top of the page
+Quote Post
marcio
post
Post #15





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


Dokladnie gdzie bo tego troche jest smile.gif


--------------------
Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/
Moj blog
Go to the top of the page
+Quote Post
nowotny
post
Post #16





Grupa: Zarejestrowani
Postów: 875
Pomógł: 122
Dołączył: 2.02.2008

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


error.log albo access.log Apacha... gdzie to znaleźć na linuksie się mnie nie pytaj...
Go to the top of the page
+Quote Post
marcio
post
Post #17





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


Ostatnie z access.log
Cytat
127.0.0.1 - - [03/Feb/2008:14:26:26 +0100] "POST /edytor.php HTTP/1.1" 200 11520 "http://localhost/edytor.php" "Mozilla/5.0 (X11; U; Linux i686; pl-PL; rv:1.8.1.11) Gecko/20060601 Firefox/2.0.0.11 (Ubuntu-edgy)"

Ostatnie(10 linijek) z error.log
Cytat
find: /root/.gnome2_private: Permission denied
find: /root/.gconf: Permission denied
find: /root/.gconfd: Permission denied
find: /root/.config: Permission denied
find: /root/.kadu: Permission denied
find: /tmp/ssh-mjVAzE4587: Permission denied
find: /tmp/orbit-marcio: Permission denied
find: /tmp/gconfd-marcio: Permission denied
find: /tmp/keyring-R6TcY7: Permission denied
find: /tmp/virtual-marcio.qzy4i8: Permission denied

Ostatnie(10 linijek) z error.log.1
Cytat
[Sat Feb 02 00:11:06 2008] [notice] caught SIGTERM, shutting down
[Sat Feb 02 12:08:15 2008] [notice] Apache/2.0.55 (Ubuntu) PHP/5.1.6 configured -- resuming normal operations
[Sat Feb 02 12:24:22 2008] [error] [client 127.0.0.1] File does not exist: /var/www/favicon.ico
[Sat Feb 02 12:24:23 2008] [error] [client 127.0.0.1] File does not exist: /var/www/favicon.ico
[Sat Feb 02 12:29:33 2008] [error] [client 127.0.0.1] File does not exist: /var/www/favicon.ico
[Sat Feb 02 12:37:55 2008] [error] [client 127.0.0.1] File does not exist: /var/www/favicon.ico
[Sat Feb 02 12:48:08 2008] [error] [client 127.0.0.1] File does not exist: /var/www/favicon.ico
[Sat Feb 02 13:00:51 2008] [error] [client 127.0.0.1] File does not exist: /var/www/favicon.ico
[Sat Feb 02 13:19:56 2008] [error] [client 127.0.0.1] File does not exist: /var/www/favicon.ico
[Sat Feb 02 13:40:11 2008] [error] [client 127.0.0.1] File does not exist: /var/www/favicon.ico
[Sun Feb 03 00:11:35 2008] [notice] caught SIGTERM, shutting down
[Sun Feb 03 12:41:55 2008] [notice] Apache/2.0.55 (Ubuntu) PHP/5.1.6 configured -- resuming normal operations
[Sun Feb 03 12:47:06 2008] [notice] caught SIGTERM, shutting down

Jakies pomysly bo mi te bledy nic nie mowia nie ma nic o edytor.php(o tym shell'u)


--------------------
Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/
Moj blog
Go to the top of the page
+Quote Post
nowotny
post
Post #18





Grupa: Zarejestrowani
Postów: 875
Pomógł: 122
Dołączył: 2.02.2008

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


Ostatnie linijki nic mi nie dają... wrzuć gdzieś całe logi...
Go to the top of the page
+Quote Post
marcio
post
Post #19





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


error.log.1
error.log
Access.log nic ciekawego nie mowi smile.gif

Ok po ustawieniu error_rep. na E_ALL mam takie bledy:
Cytat
Notice: Undefined index: up_file in /var/www/edytor.php on line 320

Notice: Undefined index: up_file in /var/www/edytor.php on line 333

Notice: Undefined index: up_file in /var/www/edytor.php on line 334

Notice: Undefined index: up_file in /var/www/edytor.php on line 334

Moze teraz ktos wie o co chodzi??


--------------------
Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/
Moj blog
Go to the top of the page
+Quote Post
nowotny
post
Post #20





Grupa: Zarejestrowani
Postów: 875
Pomógł: 122
Dołączył: 2.02.2008

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


Cytat(marcio @ 3.02.2008, 21:45:47 ) *
Moze teraz ktos wie o co chodzi??

Tyle to już wiemy... tablica $_FILES jest pusta więc siłą rzeczy nie ma klucza 'up_file'... nic nowego... smile.gif
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
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 Aktualny czas: 22.08.2025 - 08:46