ugrás a tartalomhoz

Miért nem működik a fájlfeltöltés ha a register_globals=off

Anonymous · 2005. Szep. 4. (V), 23.34
Az a helyzet, hogy már átnyálaztam mindent és sehol se találok megoldást vagy magyarázatot arra, hogy miért nem akar működni se a copy se a move_uploaded_file, ha a php.ini-ben a register_globals off-ra van állítva. Ahhoz hogy a változóim működjenek használom a import_request_variables("gpc")-t, de akkor se tölt fel semmit.
Remélem tud valaki segíteni!
 
1

Kódrészlet...

Anonymous · 2005. Szep. 4. (V), 23.43
Mivel ilyen "szabály" nincs, hogy register_globals=off esetén nem működik, kellene látni a kódodat.

Gyulus
2

Ez a rész végzi a feltöltést

Anonymous · 2005. Szep. 5. (H), 00.25
  1. <?php  
  2. $dir="upload/members";  
  3. //képek feltöltése  
  4. if (!emptyempty($pic)) {  
  5.   if (($pic_type=="image/gif") || ($pic_type=="image/jpeg") || ($pic_type=="image/pjpeg")) {  
  6.     $path="$dir/pictures/".$pic_name;// relativ path  
  7.     copy($_FILES['pic']['tmp_name'],$path);  
  8.     //move_uploaded_file($pic, "$path");  
  9.   }  
  10. }  
4

$pic?

Dualon · 2005. Szep. 5. (H), 01.04
Az empty() fv. nem ad hibaüzenetet, ha nem definiált változót kap - valószínűleg nincs $pic-ed, szerintem ott lehet a gond (egyébként ha beletennél else ágakat is pl. hibaüzenet kiírására, sokkal többet tudnánk). A kód többi részét nyilván nem ismerem, úgyhogy érdemes lenne az összes változót megnézni.
5

Re: Ez a rész végzi a feltöltést

Anonymous · 2005. Szep. 5. (H), 01.16
Természetesen az a probléma, hogy a $pic_type és a $pic változók nem léteznek.
Az egyik helyen használod a $_FILES['pic'] formulát, használd a többi helyen is.
Hogy megtudd, mit kell használnod a $pic_type és a $pic_name helyett, printeld ki a $_FILES tömböt.
  1. <?php  
  2. $dir="upload/members";  
  3. //képek feltöltése  
  4. print_r($_FILES);  
  5. exit;  
  6.   
  7. ?>  
Gyulus
6

változtatás után sem megy

surex · 2005. Szep. 5. (H), 03.07
  1. <?php  
  2. $dir="upload/members";  
  3.                                       
  4. if (!emptyempty($_FILES['pic']['name']))   
  5. {  
  6. if (($_FILES['pic']['type']=="image/gif") ||   
  7. ($_FILES['pic']['type']=="image/jpeg") ||   
  8. ($_FILES['pic']['type']=="image/pjpeg"))  
  9. {  
  10. $path="$dir/".$_FILES['pic']['name'];// relativ path  
  11. copy($_FILES['pic']['name'],$path);  
  12. //move_uploaded_file($_FILES['pic']['name'],"$path");  
  13. }else  
  14. echo "Nem kép formátum"; }  
  15.   
  16. }else  
  17. echo "Üres"; }  
  18. ?>  
Megváltoztattam erre, és nemmegy. de ha bekapcsolom a register_globals-t akkor simán feltölti. Kiprinteltem $_FILES tömb minden elemét. Azzal nincs gond, azt biztos megkapja a formtól. de akkor mi lehet a gáz?
nemlehetséges, hogy valami mást szúrok el?
vonatkozik még valami változó a php.ini-ben a feltöltésre?
3

...és persze ettől a formtól kapja az infot....

Anonymous · 2005. Szep. 5. (H), 00.41
  1. <form method='post' action='admin.php?link=pictures&index=save&new=true' enctype='multipart/form-data'>  
  2. <input type='file' name='pic'>  
  3. <input type='submit' value=' Upload '>  
  4. </form>  
7

Mexületett a megoldás :)

surex · 2005. Szep. 5. (H), 03.45
Csak annyi volt a probléma, hogy nem helyesen használtam a parancsot.
Ez a helyes:
  1. <?  
  2. copy($_FILES['pic']['tmp_name'],$path);  
  3. move_uploaded_file($_FILES['pic']['tmp_name'],$path);  
  4. ?>  
Mindkét parancs működik.
Mindenesetre köszi a hozzászólásokat...

Legközelebb figyelmesebb leszek!