Problème d'écriture dans un fichier

Petit nouveau ! | 9 Messages

05 janv. 2006, 12:03

Bonjour à tous,

Je désirerai générer un fichier XML à partir d'un petit programme PHP.
Mais à la création du fichier par la fonction fopen(), j'obtiens le message d'erreur suivant à l'exécution :
Warning: fopen(/mondossier/monfichier_XML.xml) [function.fopen]: failed to open stream: Permission denied in /mondossier/monfichier_PHP.php on line 1
Savez-vous d'où vient le problème sachant que je me suis bien assuré que j'avais les droits en écriture sur le dossier et les fichiers...

Merci d'avance !

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

05 janv. 2006, 12:18

Salut,

on peut voir le code que tu as écris ?
Est-ce que tu es bien sûr que ton chemin n'est pas considéré comme chemin absolu (à partir de la racine), au lieu de relatif (à partir de ton dossier d'exécution) ?

Petit nouveau ! | 9 Messages

05 janv. 2006, 12:32

J'ai oublier de mettre le code dans mon dernier post :oops:

Voici donc :
$filename = '/mondossier/monfichier_XML.xml';

// Ouverture en mode mixte...
$fichier = fopen($filename,'r+');

if (!$fichier) die("Impossible de créer le fichier.");

// Fermeture du fichier
fclose($fichier)
Je ne pense pas que ce soit un problème de chemin... mais je me trompe peut-être...

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

05 janv. 2006, 12:40

Avec l'option 'r+', il faut que le fichier existe déjà

Utilise 'w+' ;)
'r+' Ouvre en lecture et écriture, et place le pointeur de fichier au début du fichier.
'w+' Ouvre en lecture et écriture ; place le pointeur de fichier au début du fichier et réduit la taille du fichier à 0. Si le fichier n'existe pas, on tente de le créer.

Petit nouveau ! | 9 Messages

05 janv. 2006, 12:48

J'ai aussi essayé et ça ne change rien...

Avec l'option 'r+', j'avais pris le soin de créer le fichier prélablement... :cry:

Merci quand même pour ta réponse... Tu n'aurais pas une autre idée par hasard ?

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

05 janv. 2006, 12:52

C'est bien un problème de chemin alors, avec le / au début, c'est considéré comme un chemin absolu, donc à mon avis tu n'as pas de répertoire "mondossier" à la racine ;)

Enlève le / et ça marchera.
Pour faire encore plus clair, met ./ (le point signifie "répertoire courant")
<?php
$filename = './mondossier/monfichier_XML.xml';

// Ouverture en mode mixte...
$fichier = fopen($filename,'r+');

if (!$fichier) die("Impossible de créer le fichier.");

// Fermeture du fichier
fclose($fichier)
?>

Petit nouveau ! | 9 Messages

05 janv. 2006, 13:04

Merci pour ton aide !!!
J'ai vraiment honte : c'était tout simplement un problème de droits sur le dossier... Mon admin ne me les a pas mis par défaut :evil: