Les Allergies
Alimentaires
Posez votre question Signaler

[PHP] problème de droit ? avec fopen() ... [Résolu]

chrisBzh 13Messages postés 27 juin 2007Date d'inscription - Dernière réponse le 27 juin 2007 à 14:24
Voila, j'ai un problème lorsque j'execute un script PHP depuis que j'ai hébergé celui ci chez mon hebergeur, ce script ecrit dans un fichier texte...
J'ai réaliseé mes tests en local et tout marche sans problème
J'ai donc:
Warning: fopen(log_version.txt): failed to open stream: Permission denied in /home/.sites/130/site44/web/php/ctr_version.php on line 65
Warning: fseek(): supplied argument is not a valid stream resource in /home/.sites/130/site44/web/php/ctr_version.php on line 66
Warning: fputs(): supplied argument is not a valid stream resource in /home/.sites/130/site44/web/php/ctr_version.php on line 67
Warning: fclose(): supplied argument is not a valid stream resource in /home/.sites/130/site44/web/php/ctr_version.php on line 68
Le fopen() est impossible donc l'enchainement des Warning est logique !
Ce que je ne comprend pas c'est que sur FileZila, on voit les droits sur les fichiers et pour ce fichier texte j'ai : rw- r-- r--
J'ai donc les droit d'écriture et de lecture...
Quel est le problème ? Merci
Lire la suite 

[PHP] problème de droit ? avec fopen() »

14 réponses
Réponse
+0
moins plus
Salut,

Regarde si le fichier est bien dans le bon repertoire.
Teste si ton fichier appartient bien au même utilisateur que celui du script php.
Puis vérifie aussi les permissions avec le script.
if(posix_getpid() === file_owner('log_version.txt'))
       echo 'Même utilisateur';
else
       echo 'Pas le même utilisateur, (peut être juste le même groupe?)';

echo '<br/>';

echo sprintf('Permissions: %o', fileperms('log_version.txt'));


Ya juste un soucis, c'est que si les permissions du fichiers ne sont pas suffisantes, tu ne pourras pas connaître l'uid du fichier. Donc la comparaison peut te dire que tu n'as pas le même utilisateur alors qu'en fait c'est juste que tu ne peux pas le lire.

Ajouter un commentaire
Réponse
+0
moins plus
C'est bon j'ai résolu le problème en effet les permissions sur le fichier ne sont pas suffisantes

un chmod 666 sur mon fichier texte règle le problème (permission publiques en lecture/écriture !! ce n'est pas dangereux sa ?)
Ajouter un commentaire
Réponse
+0
moins plus
Euh, avant tu avais 644 (rw-r-r)? Et ça ne marchait pas?
Ajouter un commentaire
Réponse
+0
moins plus
oui exactement... mais il faut savoir que le script PHP qui insert dans le fichier texte est lié a une appli WinDev, j'inscris les données lorsque le client lance son application (est ce qu'on peut parler de Spyware !! Super le projet qu'on m'a donné a faire ^^).
kilian- 27 juin 2007 à 10:33
Ca y est je comprends plus rien :-D
Ajouter un commentaire
Réponse
+0
moins plus
Ptet parce que je sais pas m'exprimer ^^, je me suis relu et je me suis compris ! lol, enfin bref... sa marche en 666 et pas en 644, mais laisser cet accès en écriture en public sa me plait pas trop :s
Ajouter un commentaire
Réponse
+0
moins plus
Ben c'est bizzare.
Mais qui lit ce fichier et qui l'écris? (entre le script php et windev).
Ajouter un commentaire
Réponse
+0
moins plus
Alors...
Le client lance son appli WinDev, une requête est alors envoyée au serveur web, cette requête execute un script PHP qui ouvre et ecrit dans le fichier texte.
Il faut donc une permission d'ecriture publique !?
Ajouter un commentaire
Réponse
+0
moins plus
Non. Pas besoin.
Si lui seul écris dessus, pas besoin.
Il faut que ton fichier appartienne au même utilisateur que ton script php, et là un 644 est suffisant normalement.
Enfin, pour ça il faut que ton script php appartienne bien à ton utilisateur.
Ajouter un commentaire
Réponse
+0
moins plus
Je suis d'accord :) mais hum hum bizar que se 644 ne marche pas...
Qu'entend tu quand du dis "il faut que ton script php appartienne bien à ton utilisateur. " ?
Ajouter un commentaire
Réponse
+0
moins plus
Chez un hebergeur, on te donne un utilisateur avec des droits limités. Il faut que les fichiers dans ton repertoire chez l'hebergeur aient tous le même uid (même propriétaire): le tien.
Mais normalement, tu ne devrais pas avoir de soucis avec ça.
Ajouter un commentaire
Réponse
+0
moins plus
Ouais, ok, mais comme tu dis, je n'est pas de soucis avec sa ! :)
Ajouter un commentaire
Réponse
+0
moins plus
bon bah problème résolu, j'arrive a mes fin (surement pas par la meilleure des facons ! ^^)
Merci beaucoup kilian ;)
un chmod 666 et sa repart !
Ajouter un commentaire
Réponse
+0
moins plus
Ma foi.... :-/
Ajouter un commentaire
Ce document intitulé « [PHP] problème de droit ? avec fopen() ... » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?