Bonjour,

Je dispose d'un disque dur multimédia (popcorn hour, dont l'os est un linux) sur lequel il est possible de développer des applications php.

J'ai fait une page en php sur celui-ci qui crée un fichier et qui lui attribue ensuite tous les droits d'accès.

Voici le bout de code php qui pose problème.
Ok c'est du php mais je me doute que vous n'aurez pas trop de mal à trouver l'équivalent de l'os.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
if (FALSE !== ($handle = @fopen('mon_fichier.txt', 'w'))) {
  fwrite($handle, 'du texte');
  fclose($handle);
  chmod('mon_fichier.txt', 0777);
}
La fonction fopen retourne false en cas d'échec, le handle du fichier sinon.
Donc si la commande chmod n'est appelée que si le fichier a pu être ouvert en écriture. Le !== signifie différent, et tient compte du typage des données => false est différent de 0.

Ce code s'exécute d'ailleurs convenablement, et crée un fichier qui a pour owner 'nobody' et groupe '99'. C'est vraisemblablement le user/groupe de Apache. Vous me direz que c'est bizarre comme nom mais ce n'est pas moi qui ai choisi, c'est le lecteur multimédia qui est comme ça

Si je lance la page plusieurs fois, ça fonctionne toujours.

Mais là où ça se complique, c'est que qd je coupe le lecteur multimédia et que je le rallume, les droits d'accès aux fichiers restent identiques, mais pas le propriétaire ni le groupe des fichiers. Tout se réinitialise à 'nmt' pour le user et 'nmt' pour le groupe.

Si je réappelle ma page, j'obtiens une erreur.

C'est là que j'aurais bien aimé avoir votre aide.
Pq est-ce que j'ai une erreur alors que j'ai donné les droits 777 au fichier ?
Y a-t-il autre chose auquel je dois faire attention ? Droits aux dossiers parents, umask ? je ne sais plus trop par où chercher.

Je ne pense pas que ce soit un problème dû au langage, c'est pourquoi je m'adresse à cette section du forum.

Merci pour votre aide.