Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1646 connectés 

  FORUM HardWare.fr
  Programmation

  [php] Upload et Open_BaseDir restriction

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[php] Upload et Open_BaseDir restriction

n°63038
Freekill
Electron libre…
Posté le 03-10-2001 à 21:56:26  profilanswer
 

Salut,
 
J'ai fait un petit script pour que les users de mon site puissent uploader leur photo.
 
Ca marche très bien chez moi, mais lorsque je l'essaie chez mon hébergeur (forez.com) j'obtiens ce message:
 

Citation :


Warning: open_basedir restriction in effect. File is in wrong directory in /opt4/opt2/forez/httpd/htdocs/sites2/monsitemonsite/monsite/portrait_post.php3 on line 4


 
La page avec le formulaire contient ça:
 

Code :
  1. <FORM NAME="upload" ENCTYPE="multipart/form-data" ACTION="portrait_post.php3" METHOD=POST>
  2. <input type="text" name="user" value="">
  3. <input type="password" name="pass" maxlength="30" size="20">
  4. <input type="File" name="userfile" size="30" maxlength="255">
  5. <a href="javascript:document.upload.submit()">Envoyer</a>
  6. </FORM>


 
et le script d'upload ça:
 

Code :
  1. <?
  2. $path ="common/i/portraits/";
  3. $filename = $user.".jpg";
  4. move_uploaded_file($userfile, $path.$filename);
  5. ?>


 
J'ai essayé différentes valeurs pour $path  mais rien à faire : "", "/common/i/portraits/", "../common/i/portraits/", "/common/i/portraits", "/opt4/opt2/forez/httpd/htdocs/sites2/monsitemonsite/monsite/" etc.
 
 
Quelqu'un a-t'il une idée pour que ça fonctionne?
 
Merci d'avance pour vos réponses.

mood
Publicité
Posté le 03-10-2001 à 21:56:26  profilanswer
 

n°63049
Mara's dad
Yes I can !
Posté le 03-10-2001 à 23:18:39  profilanswer
 

Je sais pas si çà à un rapport, mais :
Il manque le champ hidden MAX_FILE_SIZE dans ton formulaire.
 
Voir http://www.php.net/manual/fr/features.file-upload.php pour plus de détails...


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
n°63050
Freekill
Electron libre…
Posté le 03-10-2001 à 23:36:37  profilanswer
 

Mara's dad a écrit a écrit :

Je sais pas si çà à un rapport, mais :
Il manque le champ hidden MAX_FILE_SIZE dans ton formulaire.
 
Voir http://www.php.net/manual/fr/features.file-upload.php pour plus de détails...  




 
Ca c'est pas grave.
 
Je vérifie la taille du fichier avant le move_uploaded_file
 
Non, je crois qu'il doit l'uploader dans un répertoire temp sur le serveur et qu'près je n'y ai pas accès à cause de la restriction.
 
J'avoue que je suis un peu  :??: avec cette histoire d'upload...

n°63056
Sh@rdar
Ex-PhPéteur
Posté le 04-10-2001 à 00:22:48  profilanswer
 

essaye d'utiliser le chemin complet depuis la racine du serveur ,visible en faisant un phpinof()
 
en général /var/www/ ou un truc dans le genre.


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
n°63062
Freekill
Electron libre…
Posté le 04-10-2001 à 01:26:41  profilanswer
 

C'est bon, j'ai fini par trouver grâce au lien de Mara's dad! (lecture un peu fastidieuse mais bon)
 
En fait, il fallait utiliser les variables $HTTP_POST_FILES['userfile']['name'] et $HTTP_POST_FILES['userfile']['tmp_name'] .
 
Pour ceux que ça intéresse voici un code qui marche (le reste n'a pas changé) :
 

Code :
  1. // Pull out the information about this upload.
  2. // You don't need type or size unless you want them.
  3. $userfile = $HTTP_POST_FILES['userfile']['name'];
  4. $type = $HTTP_POST_FILES['userfile']['type'];
  5. $size = $HTTP_POST_FILES['userfile']['size'];
  6. $location = $HTTP_POST_FILES['userfile']['tmp_name'];
  7. // If the upload was successful, then move the tmp file.
  8. // Subsitute ./tmp/$userfile to whatever directory/file you want.
  9. // moveFailed() - whatever you want here to handle move failure.
  10. if($userfile and is_uploaded_file($location))
  11. { move_uploaded_file($location, "./tmp/$userfile" ) or moveFailed(); }


 
Je l'ai juste un peu modifié dans mon cas pour pouvoir tester les propriété de l'image uploadée...
 
Merci à vous  :hello:

n°63827
pingu23
Posté le 07-10-2001 à 12:24:47  profilanswer
 

j'ai utilisé le même script que toi, Freekill, mais les varaiables $HTTP_POST_FILES['userfile']['size'] et $HTTP_POST_FILES['userfile']['tmp_name'] sont vides lorsque j'envoie le formulaire ....
 
et du coup, je ne sais pas si mon fichier a été  envoyé sur le serveur (et ou a t'il été envoyé surtout ??)

n°63880
Freekill
Electron libre…
Posté le 07-10-2001 à 18:41:56  profilanswer
 

tu as bien spécifié ENCTYPE="multipart/form-data" pour ton formulaire?


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  [php] Upload et Open_BaseDir restriction

 

Sujets relatifs
[ASP] Upload?OPEN GL
[HTML] upload...open file
php : upload de fichier et hebergeur gratuitphp:prob avec transert de fichier: upload
[PHP] upload d´un fichier[ASP] objet pour faire un upload?
[Java] Ou trouver un chat en open source ?[MFC] Open a Folder
Plus de sujets relatifs à : [php] Upload et Open_BaseDir restriction


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR