[PHP]Problème récuperation fichier uploadé:open_basedir restriction...

Problème récuperation fichier uploadé:open_basedir restriction... [PHP] - PHP - Programmation

Marsh Posté le 25-03-2003 à 22:07:23    

Bonjour,
dans la série, mon hébergeur est trop nul!!
Alors voilà, ils ont récemment installé un nouveau serveur(c'est là que les problèmes commencent...). D'abors les formulaires déconnait complètement sans que je comprenne pourquoi, pas de message d'erreur mais les résultat étaient incohérent. Puis en faisant un ptit phpinfo, je remarque que file_uploads est à Off, et en regardant de plus près, c'était les formulaires avec un input file qui déconnaient. Je leur signale, 2 jours plus tard, la variable est enfin mise à On. Ca ne marche toujours pas, mais maintenant j'ai au moins un message d'erreur:
 

Code :
  1. Warning: open_basedir restriction in effect. File is in wrong directory in /home/www/nomdusite/htdocs/testcheck.php on line 12
  2. Warning: getimagesize: Unable to open '/tmp/phpENUFHx' for reading. in /home/www/nomdusite/htdocs/testcheck.php on line 12


 
Mon script teste juste le fichier uploadé avec un getumagesize pour voir si c'est une image ou pas. J'ai ce résultat quelque soit le type de fichier que j'upload, même une image.
Donc apparement le serveur m'empêche d'accéder au répertoire d'upload temporaire par défaut ('/tmp/phpENUFHx';) car il y a  
open_basedir restriction in effect. Je regarde à nouveau mon phpinfo et je vois

Configuration
PHP Core  
Directive              Local Value                           Master Value  
...
open_basedir  /home/www/nomdusite:/home/www/_common/htdocs    /home/www  
...


Sachant que c'est php 4.1.2.
Or je lis sur http://dev.nexen.net/docs/php/anno [...] e-mode.php

....
 
Sous Windows, séparez les dossiers par des deux points. Sur les autres systèmes, séparez les dossiers avec un point-virgule. Lorsque PHP est utilisé comme module Apache, les chemins de la directive open_basedir des dossiers parents sont automatiques transmis.  
 
....


Et le serveur est sous Linux, donc l'erreur serait dans

/home/www/nomdusite:/home/www/_common/htdocs

car il y a ":" au lieu de ";" ?
Seulement sous l'ancien serveur, il me disent qu'il y a exactement la même config de open_basedir et là ça marche
Vous en pensez quoi?
(hmmm, bravo à ceux qui ont lu jusqu'au bout...[:ptilapin])


Message édité par NicociN le 25-03-2003 à 22:13:20
Reply

Marsh Posté le 25-03-2003 à 22:07:23   

Reply

Marsh Posté le 26-03-2003 à 01:28:58    

je suppose que ton hébergeur ne te donne pas le droit de lire les fichiers dans le /tmp (pour des raisons de sécu sans doute, sinon tu saurais lire les fichiers de sessions créé par d'autres sites)
Le tout est de savoir si ton hébergeur te fourni un répertoire d'upload pour toi seul, ou un commun avec les autres sites.
Si il t'en fourni un pour toi, il devrait t'autoriser d'y accéder.
 
chez moi je suis en safe_mode, mais j'ai spécifié un répertoire temporaire différent pour chaque "user".
Si je ne le fais pas et qu'une page x.php (du proprio X) essaye d'accéder à /tmp qui est possédé par Y, il refuse.
Par contre il sait accéder à /tmp/X/ qui est possédé par X.
 
bref le safe_mode, c'est bien compliqué :D


---------------
...oups kernel error...
Reply

Sujets relatifs:

Leave a Replay

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