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

<?php
$dir="upload/members";
//képek feltöltése
if (!empty($pic)) {
  if (($pic_type=="image/gif") || ($pic_type=="image/jpeg") || ($pic_type=="image/pjpeg")) {
    $path="$dir/pictures/".$pic_name;// relativ path
    copy($_FILES['pic']['tmp_name'],$path);
    //move_uploaded_file($pic, "$path");
  }
}
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.
<?php
$dir="upload/members";
//képek feltöltése
print_r($_FILES);
exit;

?>
Gyulus
6

változtatás után sem megy

surex · 2005. Szep. 5. (H), 03.07

<?php
$dir="upload/members";
									
if (!empty($_FILES['pic']['name'])) 
{
if (($_FILES['pic']['type']=="image/gif") || 
($_FILES['pic']['type']=="image/jpeg") || 
($_FILES['pic']['type']=="image/pjpeg"))
{
$path="$dir/".$_FILES['pic']['name'];// relativ path
copy($_FILES['pic']['name'],$path);
//move_uploaded_file($_FILES['pic']['name'],"$path");
}else
{ echo "Nem kép formátum"; }

}else
{ echo "Üres"; }
?>
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

<form method='post' action='admin.php?link=pictures&index=save&new=true' enctype='multipart/form-data'>
<input type='file' name='pic'>
<input type='submit' value=' Upload '>
</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:

<?
copy($_FILES['pic']['tmp_name'],$path);
move_uploaded_file($_FILES['pic']['tmp_name'],$path);
?>
Mindkét parancs működik.
Mindenesetre köszi a hozzászólásokat...

Legközelebb figyelmesebb leszek!