IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Compteur qu ne s'incremente pas


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 38
    Points : 27
    Points
    27
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  2. #2
    Expert éminent
    Avatar de transgohan
    Homme Profil pro
    Développeur Temps réel Embarqué
    Inscrit en
    Janvier 2011
    Messages
    3 146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Temps réel Embarqué

    Informations forums :
    Inscription : Janvier 2011
    Messages : 3 146
    Points : 9 386
    Points
    9 386
    Par défaut
    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.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 38
    Points : 27
    Points
    27
    Par défaut
    je viens d'ajouter des retours à la ligne mais ça ne change rien, le compteur ne s'incrémente pas.

  4. #4
    Expert éminent
    Avatar de transgohan
    Homme Profil pro
    Développeur Temps réel Embarqué
    Inscrit en
    Janvier 2011
    Messages
    3 146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Temps réel Embarqué

    Informations forums :
    Inscription : Janvier 2011
    Messages : 3 146
    Points : 9 386
    Points
    9 386
    Par défaut
    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().

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 38
    Points : 27
    Points
    27
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
     $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

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 38
    Points : 27
    Points
    27
    Par défaut
    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

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2007] incrémenter un compteur type toupie avec un pas de 0.1
    Par guillaume30c dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 13/12/2011, 11h41
  2. post incrementation, pas clair
    Par _vince_ dans le forum C++
    Réponses: 16
    Dernier message: 28/11/2007, 18h27
  3. Mon index ne s'incremente pas!
    Par mun_a dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 31/07/2007, 14h40
  4. [XSLT] comment incrementer un compteur
    Par sidi.elmoctar dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 08/05/2006, 10h49
  5. [XSLT][Compteur]qui ne s'incremente pas
    Par fraoustin dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 10/01/2005, 18h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo