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 :

Script pour les visites sur le site [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre régulier Avatar de DezMax
    Homme Profil pro
    Licence Informatique
    Inscrit en
    Décembre 2012
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Licence Informatique

    Informations forums :
    Inscription : Décembre 2012
    Messages : 89
    Points : 115
    Points
    115
    Par défaut Script pour les visites sur le site
    Salut, à tous je voudrais savoir comment modifier ce script de façon à vérifier l'existence de l'ip à la date du jours par exemple:

    L'utilisateur vient sur le site aujourd'hui si c'est la première fois alors il est ajouté à la base de donnée si c'est plus que la première fois alors il n'est pas ajouté à la BDD , en revanche si il vient le jours suivant une fois il est ajouté à la base donnée plus qu'une fois alors il n'est pas ajoutée .

    Problème :
    CHAQUE JOURS L'UTILISATEUR NE PEUT ETRE INSÉRER QU'UNE FOIS DANS LA BASE DONNÉE ET SI IL EXISTE DÉJÀ POUR LE JOURS ALORS IL N'EST PAS AJOUTÉE .


    pour le moment le script ajoute si la personne n'existe pas dans la base donnée sinon il ne l'ajoute pas .
    Code PHP : 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
    <?php
     
    //Adresse IP
    $ip = $_SERVER['REMOTE_ADDR'];
     
     //Envoie une requête SQL qui vérifie l'existence de l'ip dans la BDD
      $check_IP = mysql_query('SELECT * FROM visiteurs WHERE ip="'.$ip.'"');
     
     //Vérifie si la BDD nous indique l’existence de cette ip
     if(mysql_num_rows($check_IP) != 0){
     echo "On ajoute pas le visiteur a la BDD";
      }
     
    else{
    $insert_IP = mysql_query('INSERT INTO visiteurs(ip) VALUES("'.$ip.'")');
     
       if($insert_IP){
        echo "Visiteur ajout&eacute;";
        }
       else{
       echo "Erreur SQL";
        }
     
    }
     
    ?>

    Ma table SQL

    id | ip | date |
    1 |127.0.0.1| 2013-25-03
    --//CODE//--

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Ajoute un index UNIQUE sur l'ip et la date et tu auras juste à faire :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT IGNORE INTO visiteurs(ip) VALUES("'.$ip.'", CURDATE())
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre régulier Avatar de DezMax
    Homme Profil pro
    Licence Informatique
    Inscrit en
    Décembre 2012
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Licence Informatique

    Informations forums :
    Inscription : Décembre 2012
    Messages : 89
    Points : 115
    Points
    115
    Par défaut
    Merci
    mais pour la date je prefere utiliser la fonction date();

    ce qui me pose problème c'est le système logique mais après avoir réfléchie je pense avoir trouver une solution
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php
    while( $data = mysql_fetch_array($insert_IP)){
    $dateV =  $data['date'];
     if($dateV == date('Y-d-m')){
      echo "La date existe donc on ajoute pas le visiteurs !";
     
      }
    else{
     echo "la date n'existe pas pour le visiteur on l'ajoute";
    }
    }
    ?>
    --//CODE//--

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Je ne vois pas pourquoi se compliquer la tâche alors que ça peut être fait en deux lignes de code.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre régulier Avatar de DezMax
    Homme Profil pro
    Licence Informatique
    Inscrit en
    Décembre 2012
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Licence Informatique

    Informations forums :
    Inscription : Décembre 2012
    Messages : 89
    Points : 115
    Points
    115
    Par défaut
    Je n'ai pas très bien compris votre requete en SQL elle fait quoi exactement ?
    Merci
    --//CODE//--

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Elle insère l'ip et la date dans la table, et s'il y a problème d'unicité sur le couple ip/date, elle ne fait rien (evidemment il faut l'index UNIQUE sur le couple ip/date)
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

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

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 382
    Points : 10 410
    Points
    10 410
    Par défaut
    Au passage il faudrait que tu trouve un moyen pour ne pas comptabiliser les robots sinon cela va complètement fausser tes stats.

    Sur un petit site avec quelques visiteurs par jours, le nombre de robots qui passeront sur le site sera très supérieur au nombre de visiteurs réels. Et comme le nombre de robots est très variable tu ne pourras pas dégager de tendances réelles sur l'évolution de la fréquentation.

    Sur un site plus fréquenté qui a quelques centaines de visites (visiteurs réels) par jour, le nombre de robots peut varier d'une cinquante à plus de deux cents. Là encore impossible de dessiner une tendance.

    Bref c'est à partir de plusieurs milliers de visiteurs/jour que les stats qui n'excluent pas les robots commencent à être significatives.

  8. #8
    Membre régulier Avatar de DezMax
    Homme Profil pro
    Licence Informatique
    Inscrit en
    Décembre 2012
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Licence Informatique

    Informations forums :
    Inscription : Décembre 2012
    Messages : 89
    Points : 115
    Points
    115
    Par défaut
    Merci
    --//CODE//--

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

Discussions similaires

  1. comment aspirer les liens "embed" pour les utiliser sur mon site
    Par stephanech dans le forum Général Conception Web
    Réponses: 1
    Dernier message: 03/08/2010, 08h56
  2. [Joomla!] Quel est le layout utilisé pour les annonces sur le site officiel?
    Par _skip dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 0
    Dernier message: 07/06/2010, 11h40
  3. Problème d'entête pour les news sur mon site
    Par jounax dans le forum Langage
    Réponses: 1
    Dernier message: 06/01/2008, 11h11
  4. [MySQL] Statistiques sur les visites d'1 site - Fct count / num_rows
    Par RKU01 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 11/02/2007, 19h05
  5. pour ou contre un compteur de visite sur un site?
    Par cortex024 dans le forum Mon site
    Réponses: 8
    Dernier message: 04/12/2006, 11h20

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