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

PHP & Base de données Discussion :

Compteur PHP


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé

    Profil pro
    Inscrit en
    Août 2008
    Messages
    1 222
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 1 222
    Par défaut Compteur PHP
    Bonjour a tous,

    je souhaite crée un compteur en php , le principe est de savoir si le visiteur est resté au moin 3 minutes sur mes pages.

    voici ce que je voudrais faire:

    -une fois que un visiteur se connecte a mon site, j'enregistre sur ma base de donnée son ip sans le champs ip_visiteur et en plus je rajoute +1 sur un autre champs que j'appellerais chiffre_visiteur.

    -3 minutes plus tard je regarde si cette adresse ip est ici:

    si elle est encore ici j'efface juste son IP.
    si elle n'est plus la je fait un -1 dans le champ chiffre_visiteur et j'efface son IP.

    est ce possible de le faire en php ou dois je être obligé d'utiliser un autre language orienté client quelle sera la meilleur solution plus simple ajax , java script

    si je le fait comme je suis débutant quelle sera les fonctions de temps a utiliser,
    merci de vos réponse

  2. #2
    Membre émérite
    Avatar de amoiraud
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2006
    Messages
    606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2006
    Messages : 606
    Par défaut
    A mon avis le plus simple serait de créer une variable de session à la connexion :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $_SESSION['arrivee'] = time();
    Ensuite dans un fichier qui est inclu dans toutes les pages (genre fichier de config, header, connexion sql ou autre) tu fais cette vérif :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    if(isset($_SESSION['arrivee']) && (time() - $_SESSION['arrivee']) >= 180){
      //Effacement de l'IP
    }
    Par contre je sait pas trop comment tu pourrais faire un -1 sur chiffre_visiteur après qu'il ai quitté la page, le mieux serait de ne pas ajouter le +1 sur chiffre_visiteur à la connexion mais de le faire en même temps que l'effacement de l'IP

  3. #3
    Membre éprouvé

    Profil pro
    Inscrit en
    Août 2008
    Messages
    1 222
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 1 222
    Par défaut
    merci de ta réponse je vais essayé tous cela sur mon site,

    comme je débute je ne savais pas qu'on pouvait mettre time dans une session ,donc au bout de 180 seconde si la session est encore la je met un +1 .
    par contre lorsque le visitieur se deconnecte la session et toujours présente pour le serveur il saura effacer l'ip du visiteur deconnecté? faut t'il que je rajoute après avoir effacé l'ip , destroy session?


  4. #4
    Membre émérite
    Avatar de amoiraud
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2006
    Messages
    606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2006
    Messages : 606
    Par défaut
    Citation Envoyé par keokaz Voir le message
    merci de ta réponse je vais essayé tous cela sur mon site,

    comme je débute je ne savais pas qu'on pouvait mettre time dans une session ,donc au bout de 180 seconde si la session est encore la je met un +1 .
    par contre lorsque le visitieur se deconnecte la session et toujours présente pour le serveur il saura effacer l'ip du visiteur deconnecté? faut t'il que je rajoute après avoir effacé l'ip , destroy session?

    Oui si il quitte la page avant les 3 minutes la session sera encore la mais si il retourne pas sur ton site dans la demi-heure (durée moyenne d'une session) y'aura pas de souci.
    Par contre faut voir comment optimiser parce que la c'est un peu bancale.
    Pour la suppression de l'IP si tu à un bouton déconnexion tu peut mettre effectivement un session_destroy() ainsi que la requête pour supprimer l'IP, par contre si il quitte la page sans se déconnecter ça marchera pas.

  5. #5
    Membre éprouvé

    Profil pro
    Inscrit en
    Août 2008
    Messages
    1 222
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 1 222
    Par défaut
    c'est vrai que cette solution doit surement faire travailler à fond le serveur

    sinon serais t'il mieux d'ajouter un tous petit bout de code en client , et une fois qu'il serait déconnecté il préviendra le serveur, et le php rajoutera un +1

  6. #6
    Membre éprouvé

    Profil pro
    Inscrit en
    Août 2008
    Messages
    1 222
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 1 222
    Par défaut
    je n'arrive pas a afficher correctement mes png
    normalement si le résultat de ma bdd est 56 cela doit afficher 2 images en png une image 5 et une image 6 mais la ca ne m'affiche que mon images 0
    voici le script du compteur

    ma table contient q'une seul ligne et 2 champs: id et visit.


    la fonction de l'affiche des chiffre en images
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    function afficher($nombre, $repertoire='compteur', $extension='png') 
    {
     //Répertoire si tu veux changer aléatoirement l'apparence de tes sybôles
      $nombre = (string)intval($nombre);//Suppression du 0 si y en a devant + mise en string()intval()
      $retour = '';
      for($i=0; $i<strlen($nombre); $i++)
        $retour.='
    	<img src="../'.$repertoire.'/'.$nombre[$i].'.'.$extension.'" />';
      return (empty($retour))?'Chaîne vide "'.$nombre.'"':$retour;
    }
    la lecture de ma bdd
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    $sql="SELECT visit FROM visiteur WHERE id='0' ";
    		$resultat=mysql_query($sql);
     
    $voir_resultat= mysql_fetch_array($resultat);
    		$total=$voir_resultat['visit'];
    		echo $total;
    		echo afficher('$total');
    	mysql_close();



    $total affiche bien le résultat de ma bdd mais la fonction afficher me donne une image 0
    que faut t'il ajouter ?

    merci de la réponse

Discussions similaires

  1. Condition sur url de compteur php via JavaScipt
    Par elmander dans le forum Général JavaScript
    Réponses: 26
    Dernier message: 13/09/2010, 14h03
  2. Compteur PHP de clic de bannière flash
    Par anvoke dans le forum Flash
    Réponses: 9
    Dernier message: 12/03/2010, 13h58
  3. Fonction sur compteur php
    Par Sekigawa dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 21/01/2009, 11h20
  4. [Tableaux] compteur Php comment faire ?
    Par loady dans le forum Langage
    Réponses: 1
    Dernier message: 17/09/2005, 10h35

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