Précédent   Forum des professionnels en informatique > PHP > Langage > Syntaxe
Syntaxe Forum d'entraide sur la syntaxe de PHP et la POO. Avant de poster -> FAQ syntaxe, Cours d'initiation et cours de POO
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 20/11/2011, 14h48   #1
Invité de passage
 
Inscription : septembre 2010
Messages : 7
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7
Points : 2
Points : 2
Par défaut Compteur qu ne s'incremente pas

Bonjour,

J'ai un soucis pour faire un compteur. J'ai un fichier compteur2.inc qui contient juste un nombre. J'ai aussi un fichier compteur2.php qui contient le code.
Or le compteur ne s’incrémente pas et je ne vois pas pourquoi. Le nombre dans compteur2.inc s'affiche bien mais c'est tout.

compteur2.php
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<?php
session_start();
?>
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
 
<head>
</head>
 
<body>
 
<?php $page = $_SERVER['PHP_SELF'];?>
 
<div id="corps">
 
<?php
                $nombre_compteur = fopen("compteur2.inc", "r");
                $compteur = fgets($nombre_compteur,4096);
echo "compteur avant : ".$compteur."<br />"; //fonctionne
                $compteur++;
echo "compteur intermediaire : ".$compteur."<br />"; //affiche le même resultat qu'avant l'incrementation
                fclose($nombre_compteur);
 
echo "compteur intermediaire 2 : ".$compteur."<br />";//affiche le même resultat qu'avant l'incrementation
 
                $nombre_compteur = fopen('compteur2.inc', 'w');
                fseek($nombre_compteur,0);
                fputs($nombre_compteur, $compteur);
echo "compteur apres : ".$compteur;//affiche le même resultat qu'avant l'incrementation
                fclose($nombre_compteur);
?>
 
</body>
</html>
Merci
olivbarb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/11/2011, 15h23   #2
Membre Expert
 
Avatar de transgohan
 
Homme Baptiste ROUSSEL
Étudiant
Inscription : janvier 2011
Messages : 811
Détails du profil
Informations personnelles :
Nom : Homme Baptiste ROUSSEL
Localisation : France, Territoire de Belfort (Franche Comté)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2011
Messages : 811
Points : 1 527
Points : 1 527
Ton fichier compteur2.inc doit contenir des caractères supplémentaires tels que des espaces ou des retours à la ligne. Ce qui fait que ce que tu récupères n'est pas casté en int mais en string.
__________________
Toujours se souvenir que la majorité des ennuis viennent de l'espace occupé entre la chaise et l'écran de l'ordinateur.
transgohan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/11/2011, 15h36   #3
Invité de passage
 
Inscription : septembre 2010
Messages : 7
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7
Points : 2
Points : 2
je viens d'ajouter des retours à la ligne mais ça ne change rien, le compteur ne s'incrémente pas.
olivbarb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/11/2011, 15h46   #4
Membre Expert
 
Avatar de transgohan
 
Homme Baptiste ROUSSEL
Étudiant
Inscription : janvier 2011
Messages : 811
Détails du profil
Informations personnelles :
Nom : Homme Baptiste ROUSSEL
Localisation : France, Territoire de Belfort (Franche Comté)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2011
Messages : 811
Points : 1 527
Points : 1 527
Il ne faut pas en ajouter mais les enlever !
Ton fichier texte ne doit contenir que l'entier et rien d'autre !

Sinon pour être sûr de ne récupérer que l'entier et non les parasites utilises une fonction telle que fscanf() au lieu de fgets().
__________________
Toujours se souvenir que la majorité des ennuis viennent de l'espace occupé entre la chaise et l'écran de l'ordinateur.
transgohan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/11/2011, 15h52   #5
Invité de passage
 
Inscription : septembre 2010
Messages : 7
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7
Points : 2
Points : 2
initialement il n'y avait rien d'autre que l'entier. Et je n'arrivais pas à l'incrémenter. Je viens d'ajouter la ligne
Code :
 $compteur = intval($compteur);
Maintenant l'incrémentation se fait mais la valeur n'est pas ajoutée au fichier

La fonction fscanf ne m'affiche pas l'entier mais array. Or je n'utilise pas de tableau, j'ai juste un entier
olivbarb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/11/2011, 15h57   #6
Invité de passage
 
Inscription : septembre 2010
Messages : 7
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7
Points : 2
Points : 2
J'ai trouvé la solution.

Effectivement il fallait ajouter la fonction Intval() mais j'avais également un pb de droit sur le fichier compteur.inc.

Merci de ton aide
olivbarb est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h33.


 
 
 
 
Partenaires

Hébergement Web