Erreur inconnue...

noSnoR Messages postés 62 Date d'inscription samedi 5 mars 2005 Statut Membre Dernière intervention 11 avril 2006 - 20 nov. 2005 à 03:00
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 - 22 nov. 2005 à 10:43
voilà ce qui s'affiche lorsque j'accede à ma page :

"

Warning: fclose(): supplied argument is not a valid stream resource in compteur.php on line 16





Warning: Missing argument 4 for write() in compteur.php on line 3

"

Et ce pendant assez longtemps... Je crois apercevoir le probleme, j'ai tester la recursivité d'une fonction, que voici :



3 function write($file,$str,$bl,$mode)

{

if(($fichier =@fopen($file,$mode))!==FALSE)

{

if($bl)

{

$str = stripslashes($str);

}

fputs($fichier,$str);

fclose($fichier);

}else

{

$fichier =@fopen($file,'a');

16 fclose($fichier);

write($file,$str,$bl,$mode);

}

}



J'ai mis les numeros de ligne en face des elements incriminés...

à la limite j'aurais pu m'arranger de tout cela, mais je me pose des questions :

Sous easyPhp, ça marche nickel, et tout le script n'a pas de bug connu...

Une fois tranféré sous free, ces erreurs interviennent...

Une idée ? Je debute en Php, donc pas d'explication trop technique,
merci, juste un piti truc tout simple, LA solution qui ne m'est pas
apparue au bon moment, ou même comment remplacer ceci convenablement
pour que free l'accepte...

5 réponses

cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
20 nov. 2005 à 10:18
Salut,

$fichier =@fopen($file,'a');

enlève le @ et que s'affiche t-il ensuite ?

<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li><li>Codes-php.net</li>
0
FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
20 nov. 2005 à 10:23
"Missing argument 4 for write() in compteur.php on line 3"
Manque $mode...

"Warning: fclose(): supplied argument is not a valid stream resource in compteur.php on line 16"
C'est que $fichier ou $file n'est pas un fichier valide.

Au passage : "$fichier =@fopen($file,'a');
16 fclose($fichier);"
A quoi ca te sert d'ouvrir un fichier (qui n'en ai pas un en même temps, je rejoind Antho sur l'idée) pour le fermer tout de suite après ?
0
monoceros01 Messages postés 420 Date d'inscription vendredi 28 novembre 2003 Statut Membre Dernière intervention 20 mars 2006
20 nov. 2005 à 14:08
Warning: fclose(): supplied argument is not a valid stream resource in compteur.php on line 16

Ça, ça veut dire que $fichier n'est pas une ressource valide. Il
suffit donc de regarder quelle est la dernière valeur assignée. Il se
trouve que c'est fopen($file,'a').

Le problème est que cette expression se trouve dans un else qui est executé si ($fichier =@fopen($file,$mode)) == FALSE,
donc que si le fichier ne peut être ouvert! Soit parce qu'il n'existe
pas, soit parce qu'il est inaccessible dans le mode $mode.

Donc il est probable que $fichier vale FALSE et c'est pourquoi fclose($fichier); renvoie une erreur



Warning: Missing argument 4 for write() in compteur.php on line 3

Ça, ça veut dire que t'as oublier le quatrième argument ($mode) lorsque tu as appelé ta fonction write().



*viens de s'apercevoir qu'il a dit exactement la même chose que FhX <_<*



Bon ben je poste quand même, mais je suis d'accord avec FhX, les lignes 15 et 16 sont totalements inutiles.
0
FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
20 nov. 2005 à 17:27
un :
<?php echo $file; ?>
va vite te le dire :)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
22 nov. 2005 à 10:43
$fichier =@fopen($file,'a');

fclose($fichier);


à mon avis, ce fclose n'a rien à faire là, et tu devrais plutôt mettre :



$fichier=fopen($file, 'a') or die('lecture de fichier impossible !');


In a dream, I saw me, drop dead... U was here, U cried... It was just a deam, if I die, U won't cry, maybe, U'll be happy

http://coucou747.hopto.org
0
Rejoignez-nous