Jean-Francois Ortolo
2008-05-08 14:37:29 UTC
Bonjour
Mon hébergeur ( Sivit mutualisé ) a le Safe Mode à On.
Celà implique des restrictions sur les fonctions, en particulier de
manipulation de fichiers.
Il me semblait avoir vu dans le PHP Manual sur le web, des
commentaires indiquant que pour faire une ouverture en écriture d'un
fichier sur le répertoire courant, il était mieux de faire d'abord un
touch($filename) puis en suite seulement un fopen($filename, "w").
Donc, mon instruction globale est la suivante:
if(!@touch($filename)||(!($fp = @fopen ($filename, "w")))
{
echo "Message d'erreur\n";
die(""); // Je pourrais
aussi bien mettre un exit;
}
Or, le script où se trouvent ces instructions, semble s'arrêter 1
fois sur 5 ou 6, sans créer le fichier $filename.
Le fichier $filename n'est pas accédé simultanément par un autre
script, seulement après par un autre script, qui s'aperçoit que le
fichier n'existe pas.
Je ne peux pas tester le message d'erreur, car le script est en
batch. Les errreurs sont imprévisibles.
Théoriquement, l'instruction $fp = @fopen($filename, "w") dans son
ensemble, rend la valeur de $fp d'après ce que je pense. Donc, je peux
grouper l'affectation et le test.
J'ai créé le répertoire courant et tous ses répertoires pères
manuellement, par le FTP.
Les permissions de tous les répertoires, sont au maximum de permissivité.
Je ne crée jamais de répertoire à partir d'un script PHP.
Le script PHP est lancé en mode module Apache.
D'où vient l'erreur ?
Merci beaucoup de vos réponses.
Jean-François Ortolo
Mon hébergeur ( Sivit mutualisé ) a le Safe Mode à On.
Celà implique des restrictions sur les fonctions, en particulier de
manipulation de fichiers.
Il me semblait avoir vu dans le PHP Manual sur le web, des
commentaires indiquant que pour faire une ouverture en écriture d'un
fichier sur le répertoire courant, il était mieux de faire d'abord un
touch($filename) puis en suite seulement un fopen($filename, "w").
Donc, mon instruction globale est la suivante:
if(!@touch($filename)||(!($fp = @fopen ($filename, "w")))
{
echo "Message d'erreur\n";
die(""); // Je pourrais
aussi bien mettre un exit;
}
Or, le script où se trouvent ces instructions, semble s'arrêter 1
fois sur 5 ou 6, sans créer le fichier $filename.
Le fichier $filename n'est pas accédé simultanément par un autre
script, seulement après par un autre script, qui s'aperçoit que le
fichier n'existe pas.
Je ne peux pas tester le message d'erreur, car le script est en
batch. Les errreurs sont imprévisibles.
Théoriquement, l'instruction $fp = @fopen($filename, "w") dans son
ensemble, rend la valeur de $fp d'après ce que je pense. Donc, je peux
grouper l'affectation et le test.
J'ai créé le répertoire courant et tous ses répertoires pères
manuellement, par le FTP.
Les permissions de tous les répertoires, sont au maximum de permissivité.
Je ne crée jamais de répertoire à partir d'un script PHP.
Le script PHP est lancé en mode module Apache.
D'où vient l'erreur ?
Merci beaucoup de vos réponses.
Jean-François Ortolo