8795 sujets

Développement web côté serveur, CMS

bonjour, je souhaiterais savoir comment faire pour generer un fichier lors de l'ouverture d'une page php.

J'ai fait ça
$id = $tab_result["id"]; // l'id de l'article, la position dans la base
$ext=".txt"; // $ext c'est l'extension donnée aux fichiers qui contiennent les commentaires (.txt)
// test pour savoir si le fichier de commentaire existe
if(file_exists("com/$id$ext"))
{} // Si le fichier existe ok on ne fait rien
else // sinon
{
touch("com/$id$ext");  // on le cree
}


mais ça ne me satisfait pas pleinement car lors de la premiere ouverture de la page php j'ai ce message :
Warning: file(com/8.txt) [function.file]: failed to open stream: No such file or directory

je pense que cela se produit car le fichier n'a pas le temps de se créer. car quand je rafraichi la page c'est bon.
Alors comment faire ?

merci d'avance pour vos suggestions
Modifié par pareto (20 Jan 2010 - 17:32)
Salut,

tu programme en local ?

si oui essai comme ca :

if(@file_exists("com/$id$ext")) 


Tien moi au courant.

Cordialement
merci de t'occuper de mon probleme,
je fais mes tests en ligne...
j'ai une piste :


$fp=fopen("com/$id$ext", "w");


mais ça m'ecrase les commentaires deja ecrits...
Modifié par pareto (20 Jan 2010 - 17:55)
Essai quand meme de mettre le @ devant voir car la c'est juste un warning normalement ca devrait disparaitre !
Viva25 a écrit :
Essai quand meme de mettre le @ devant voir car la c'est juste un warning normalement ca devrait disparaitre !



ça deconne toujours même avec le @
Warning: file(com/8.txt) [function.file]: failed to open stream: No such file or directory
Modifié par pareto (20 Jan 2010 - 17:54)
pareto a écrit :
je pense que cela se produit car le fichier n'a pas le temps de se créer. car quand je rafraichi la page c'est bon.


Je pense que c'est bien ça le souci à la premiere connexion le fichier n'existe pas donc il t'affiche un warning par contre à la deuxieme connexion il est bien présent donc aucun souci je vais essayer de faire des recherches et je te tiens au courant !
oui je crois qu'il n'a pas le temps de creer le fichier, peut-etre une temporisation...

avec

sleep(3);

ça marche
Modifié par pareto (20 Jan 2010 - 18:06)
J'ai mieux et sans temporisation...

	$id = $tab_result["id"]; 
// l'id de l'article, la position dans la base
	$ext="_com.inc"; 
// $ext c'est l'extension donnée aux fichiers qui contiennent les commentaires (ici c'est _com.inc)

//ouverture du fichier en mode écriture, création du fichier s'il n'existe pas. 	
$fp=fopen("com/$id$ext", "a+");]

Modifié par pareto (20 Jan 2010 - 18:25)