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

Résolu
chrisBzh Messages postés 13 Statut Membre -  
kilian Messages postés 8675 Date d'inscription   Statut Modérateur Dernière intervention   -
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. kilian Messages postés 8675 Date d'inscription   Statut Modérateur Dernière intervention   1 526
     
    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
  2. chrisBzh Messages postés 13 Statut Membre
     
    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
  3. kilian Messages postés 8675 Date d'inscription   Statut Modérateur Dernière intervention   1 526
     
    Euh, avant tu avais 644 (rw-r-r)? Et ça ne marchait pas?
    0
  4. chrisBzh Messages postés 13 Statut Membre
     
    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. kilian Messages postés 8675 Date d'inscription   Statut Modérateur Dernière intervention   1 526
       
      Ca y est je comprends plus rien :-D
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. chrisBzh Messages postés 13 Statut Membre
     
    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
  7. kilian Messages postés 8675 Date d'inscription   Statut Modérateur Dernière intervention   1 526
     
    Ben c'est bizzare.
    Mais qui lit ce fichier et qui l'écris? (entre le script php et windev).
    0
  8. chrisBzh Messages postés 13 Statut Membre
     
    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
  9. kilian Messages postés 8675 Date d'inscription   Statut Modérateur Dernière intervention   1 526
     
    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
  10. chrisBzh Messages postés 13 Statut Membre
     
    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
  11. kilian Messages postés 8675 Date d'inscription   Statut Modérateur Dernière intervention   1 526
     
    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
  12. chrisBzh Messages postés 13 Statut Membre
     
    Ouais, ok, mais comme tu dis, je n'est pas de soucis avec sa ! :)
    0
  13. chrisBzh Messages postés 13 Statut Membre
     
    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
  14. kilian Messages postés 8675 Date d'inscription   Statut Modérateur Dernière intervention   1 526
     
    Ma foi.... :-/
    0