$_FILES, move_uploaded_file => erreur !

$_FILES, move_uploaded_file => erreur ! - PHP - Programmation

Marsh Posté le 14-01-2004 à 14:40:23    

voila... j'ai fait ça (copier coller d'un script deja tout fait):
 

Code :
  1. $uploaddir = '/var/www/clients/fichiers/bat/';
  2. print "<pre>";
  3. if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploaddir . $_FILES['userfile']['name']))
  4. {
  5.      print "Le fichier est valide, et a &eacute;t&eacute; t&eacute;l&eacute;charg&eacute; avec succ&egrave;s. Voici plus d'informations :\n";
  6.      print_r($_FILES);
  7. }
  8. else
  9. {
  10.       $field_info="Attaque par upload potentielle. Voici plus d'informations :</br>";
  11.       $field_info.=print_r($_FILES);
  12. }


 
 
et j'obtiens ça :
 

Code :
  1. Warning:  move_uploaded_file() [function.move-uploaded-file]: SAFE MODE Restriction in effect.  The script is not allowed to access a file owned by another uid in index_etape1.php on line 34
  2. Attaque par upload potentielle. Voici plus d'informations :
  3. Array
  4. (
  5.     [userfile] => Array
  6.         (
  7.             [name] => logoiliad.jpg
  8.             [type] => image/pjpeg
  9.             [tmp_name] => /var/www/54/c/l/o/clonecopy.net/www/phpgTaF5L
  10.             [error] => 0
  11.             [size] => 61442
  12.         )
  13. )


 
 
vous avez une idée de ce qui pose probleme ? je crois que c un prob de securité... mais comment eviter cela ?
 
Freed

Reply

Marsh Posté le 14-01-2004 à 14:40:23   

Reply

Marsh Posté le 29-01-2004 à 01:46:20    

bah c'est que ton hébergeur interdit la fonction move_uploaded_file

Reply

Marsh Posté le 29-01-2004 à 04:01:58    

Mister3957 a écrit :

bah c'est que ton hébergeur interdit la fonction move_uploaded_file


 
Perdu.
 
Non, le problème est bien lié à la sécurité. Lorsque le safe_mode est actif, php vérifie que le propriétaire du script est bien le même que celui du fichier à utiliser (et celui des répertoires aussi d'ailleurs).

Reply

Marsh Posté le 29-01-2004 à 12:21:37    

naceroth a écrit :


 
Perdu.
 
Non, le problème est bien lié à la sécurité. Lorsque le safe_mode est actif, php vérifie que le propriétaire du script est bien le même que celui du fichier à utiliser (et celui des répertoires aussi d'ailleurs).


 
J'ai reussi à faire fonctionner la fonction... visiblement c t un probleme de repertoire... quand je precisais pas il mettait les fichiers dans le repertoire ou se trouvait le fichier PHP, j'ai pas reussi à faire autrement.. alors je crée un sous repertoire aleatoire et je mets les fichiers dedans de la maniere suivante :
 

Code :
  1. $smartdate=date("dmy" );
  2. $smartnum=md5 (uniqid (rand()));
  3. $smartnum2=substr($smartnum,0,5);
  4. $batnum="BAT".$smartdate.$smartnum2;
  5. $uploaddir = 'clients/'.$batnum.'/';
  6. mkdir($uploaddir,0777);
  7. if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploaddir.$_FILES['userfile']['name']))
  8. {
  9. $file_name=str_replace(" ", "_",$_FILES['userfile']['name']);
  10. rename ($uploaddir.$_FILES['userfile']['name'],$uploaddir.$file_name);
  11. $_FILES['userfile']['name']=$file_name;
  12. }


 
voila ! et ça marche ! :)


Message édité par freed102 le 29-01-2004 à 12:23:09
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed