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

Résolu
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
Configuration: Windows XP
Firefox 2.0.0.4

13 réponses

  1. Modérateur
    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.

    0
    1. 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 ?)
      0
      1. Modérateur
        Euh, avant tu avais 644 (rw-r-r)? Et ça ne marchait pas?
        0
        1. 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 ^^).
          0
          1. Modérateur
            Ca y est je comprends plus rien :-D
            0
        2. 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
          0
          1. Modérateur
            Ben c'est bizzare.
            Mais qui lit ce fichier et qui l'écris? (entre le script php et windev).
            0
            1. 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 !?
              0
              1. Modérateur
                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.
                0
                1. 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. " ?
                  0
                  1. Modérateur
                    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.
                    0
                    1. Ouais, ok, mais comme tu dis, je n'est pas de soucis avec sa ! :)
                      0
                      1. 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 !
                        0