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 :

Probleme pour un compteur


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 59
    Points : 40
    Points
    40
    Par défaut Probleme pour un compteur
    salut à tous,
    débutant en php, je voulais juste faire un compteur (simple) qui comptabilise les visites. J'ai ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?
    $monfichier = fopen('compteur.txt', 'r+');
    $pages_vues = fgets($monfichier); // On lit la première ligne (nombre de pages vues)
    $pages_vues++; // On augmente de 1 ce nombre de pages vues
    fseek($monfichier, 0); // On remet le curseur au début du fichier
    fputs($monfichier, $pages_vues); // On écrit le nouveau nombre de pages vues
    fclose($monfichier);
    echo '<p>Il y a eu ' . $pages_vues . ' visites !</p>';
    ?>
    Et dans mon fichier index j'ai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <? include("compteur.php");
    Or le nombre reste toujours a 0 et ne bouge pas. Ou est donc l'erreur dans ce code hyper simple pour vous ?
    Merci d'avance

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 138
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 138
    Points : 1 504
    Points
    1 504
    Par défaut
    Je sais pas, la syntaxe a l'air correcte.
    Vérifie que tu as bien un 0 dans ton fichier compteur (si ton fichier n'a pas de contenu la premiere fois que tu lances le compteur, ca marchera pas).
    Vérifie que tu as bien les droits sur le fichier compteur.txt sur ton serveur pour lire et écrire dedans.

    AUssi, essaie de mettre plus de controle dans ton code (genre sur le fopen par exemple). ca permet d'avoir un retour d'erreur.

    Ceci dit, a part ca, je pense que le code que tu soumets devrait fonctionner.

  3. #3
    Membre expert
    Avatar de trotters213
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 571
    Points : 3 145
    Points
    3 145
    Par défaut

    Evite également d'utiliser les short tags (<?), utilise la syntaxe complète <?php

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 59
    Points : 40
    Points
    40
    Par défaut
    Moi aussi sa m'etonne car j'ai fait :

    un chmod -R 777 /var/www (donc la je devrais etre tranquille non ?)
    j'ai mis la valeur 0 dans le fichier texte.

    A part ça sa devrait marcher non ... et bien non

  5. #5
    Membre expert
    Avatar de trotters213
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 571
    Points : 3 145
    Points
    3 145
    Par défaut

    Chez moi ça fonctionne très bien.

    Tu mets bien un 0 dans ton fichier compteur.txt ?
    Tes 2 fichiers index.php et compteur.php sont bien dans le même répertoire ?
    Tu affiches toutes les erreurs : error_reporting(E_ALL|E_STRICT); ?

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 59
    Points : 40
    Points
    40
    Par défaut
    Salut
    -J'ai bien mis 0 dans le fichier compteur.txt (si je suis pas complètement taré zéro c'est ça 0 ).
    -Mes deux fichiers sont bien au même endroit
    Je comprend pas la dernière phrase. C'est quelque chose que je devrais faire ou que j'ai fait ? enfin bref sa sert a quoi cette fonction et ou la mais on en place

  7. #7
    Membre expert
    Avatar de trotters213
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 571
    Points : 3 145
    Points
    3 145
    Par défaut
    Citation Envoyé par darkwhite Voir le message
    Je comprend pas la dernière phrase. C'est quelque chose que je devrais faire ou que j'ai fait ? enfin bref sa sert a quoi cette fonction et ou la mais on en place
    C'est une fonction que tu dois mettre au tout début de ton script afin d'être sur que tu affiches toutes les erreurs (bien évidemment le jour où tu mettras ton site en ligne, tu la supprimes).
    Elle te permet d'afficher les erreurs, les warnings et les notice sans avoir à modifier ton fichier php.ini.

    Rajoutes là en haut de ton script, réexécute ton script de comptage et dis nous si quelquechose apparait à l'écran.

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 59
    Points : 40
    Points
    40
    Par défaut
    Donc si j'ai bien compris :
    Maintenant mon compteur php est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?
    error_reporting(E_ALL|E_STRICT);
    $monfichier = fopen('compteur.txt', 'r+');
    $pages_vues = fgets($monfichier); // On lit la première ligne (nombre de pages vues)
    $pages_vues++; // On augmente de 1 ce nombre de pages vues
    fseek($monfichier, 0); // On remet le curseur au début du fichier
    fputs($monfichier, $pages_vues); // On écrit le nouveau nombre de pages vues
    fclose($monfichier);
    echo '<p>Il y a eu ' . $pages_vues . ' visites !</p>';
    ?>
    Et il apparait quelque chose a l'écran, oui, mais je doute que sa soit sur le script lui même :
    Notice: Use of undefined constant E_STRICT - assumed 'E_STRICT' in /var/www/compteur.php on line 2
    Il y a eu 0 visites !

  9. #9
    Membre expert
    Avatar de trotters213
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 571
    Points : 3 145
    Points
    3 145
    Par défaut
    OK, dans ce cas supprime le E_STRICT et laisse simplement error_reporting(E_ALL); (tu utilises une version antérieure à PHP 5 je suppose).

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 59
    Points : 40
    Points
    40
    Par défaut
    Quand j'enlève E_STRICT, on revient au début :
    le nombre n'évolue pas quand on actualise la page.

  11. #11
    Membre expert
    Avatar de trotters213
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 571
    Points : 3 145
    Points
    3 145
    Par défaut
    Essaie ceci :
    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
    <?php
    if (!file_exists('compteur.txt')) 
    {
      $file=fopen('compteur.txt', 'w+');
      fwrite($file, '1');
    }
    else 
    {
      $file=fopen('compteur.txt', 'r+');
      $cpt = trim(fgets($file));
      rewind($file);
      fwrite($file, $cpt+1);
    }
    fclose($file);
    echo 'Il y a eu '.($cpt+1).' visites !';
    ?>
    Si le fichier n'est pas créé, il le crée et passe le compteur à 1 sinon il le lit et l'incrémente.

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 59
    Points : 40
    Points
    40
    Par défaut
    Avec ton code sa marche
    Merci beaucoup de ton aide patiente.
    Maintenant pourquoi le tiens marche et pas le mien ta compris ?

  13. #13
    Membre expert
    Avatar de trotters213
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 571
    Points : 3 145
    Points
    3 145
    Par défaut
    Bè je sais pas vraiment si c'est le $pages_vues++ ou le fputs qui foirait.
    C'est vrai que c'est bizarre car chez moi les 2 versions marche.
    Je pencherais plutôt pour le fputs qui est un alias de fwrite donc il vaut mieux utiliser fwrite.

  14. #14
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 59
    Points : 40
    Points
    40
    Par défaut
    En tout cas merci beaucoup.

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

Discussions similaires

  1. Probleme pour créer un compteur
    Par kikoulolol dans le forum Macros Access
    Réponses: 6
    Dernier message: 28/10/2013, 12h22
  2. Probleme pour compteur dégressif
    Par mikae dans le forum Langage
    Réponses: 5
    Dernier message: 05/07/2012, 22h45
  3. Réponses: 2
    Dernier message: 15/12/2008, 11h48
  4. [Kylix] probleme pour lancer le shell
    Par miky dans le forum EDI
    Réponses: 5
    Dernier message: 13/08/2002, 10h39
  5. Réponses: 2
    Dernier message: 30/05/2002, 09h54

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