Problème récuperation fichier uploadé:open_basedir restriction... [PHP] - PHP - Programmation
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é
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:
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...)
Message édité par NicociN le 25-03-2003 à 22:13:20