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 :

[Conception] créer une page : les plus consultées


Sujet :

Langage PHP

  1. #1
    Membre régulier Avatar de akara
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 299
    Points : 122
    Points
    122
    Par défaut [Conception] créer une page : les plus consultées
    Bonjour,
    j'ai une page affichage.php où je liste tous les articles que j'ai dans la base de données et sur chaque article j'ai créé un lien qui mène sur fiche_article.php?id=$id où je mets en GET l'id de l'article pour pouvoir ensuite la récupérer sur fiche_artcle... dans la fiche_article j' ai créé un 'algo' pour
    pouvoir incrémenter le nombre de visite, comme vous pouvez le constater ce n'est pas 'bien' car il peut y avoir des F5 à volonter, comment pourrais-je procéder pour éviter un mitraillage de F5 ? en passant par une page qui contient seulement l'algo d'incrémentation et ensuite un petit header(Location:fiche_article.php?id=$id) ? est-ce conseillé ??
    comment pourrais-je faire aussi que quand l'internaute va sur fiche_article.php?id=115656 , le compteur s'incrémente mais que quand il reviendra sur fiche_article.php?id=115656 il n'y aura pa d'incrémentation ainsi de suite pour chaque article ?
    Le no life répond "Counter Strike : Source"
    Le geek répond "Cascading Style Sheets"
    Ce n'est pas un hasard si deux choses vitales ont le même sigle

  2. #2
    Membre actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2007
    Messages
    193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2007
    Messages : 193
    Points : 207
    Points
    207
    Par défaut
    Salut,

    Je te propose 2 solutions :
    - Tu crées une session sur le siite et tu trace où le mec est passé via la session, ainsi tu peux incrémenter qu'une fois tes compteurs.

    -Tu récupère l'adresse IP du visiteurs avec le timestamp ce qui te permet d'identifier qui va où et donc via un timout que tu définis toi même d'incrémenter tes compteurs!

  3. #3
    Membre régulier Avatar de akara
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    299
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 299
    Points : 122
    Points
    122
    Par défaut
    Merci et je me suis renseigné un peu plus sur les solutions que tu m'as proposé , qu'est ce que tu penses de ça ? j'ai vu ça dans un petit tuto...
    On crée une table "connectes" avec seulement 2 champs :
    ip : type VARCHAR, nous stockerons temporairement les adresses IP des visiteurs.
    timestamp : type INT, nous stockerons le timestamp,
    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
     
    <?php
     
    .....//connexion à la base
    // -------
    // ETAPE 1 : on vérifie si l'IP se trouve déjà dans la table
    // Pour faire ça, on n'a qu'à compter le nombre d'entrées dont le champ "ip" est l'adresse ip du visiteur
    $retour = mysql_query('SELECT COUNT(*) AS nbre_entrees FROM connectes WHERE ip=\'' . $_SERVER['REMOTE_ADDR'] . '\'');
    $donnees = mysql_fetch_array($retour);
     
    if ($donnees['nbre_entrees'] == 0) // L'ip ne se trouve pas dans la table, on va l'ajouter
    {
        mysql_query('INSERT INTO connectes VALUES(\'' . $_SERVER['REMOTE_ADDR'] . '\', ' . time() . ')');
     
       .........../// et ICI ON FAIT L'INCREMENTATION ! ??!
    }
    else // L'ip se trouve déjà dans la table, on met juste à jour le timestamp
    {
        mysql_query('UPDATE connectes SET timestamp=' . time() . ' WHERE ip=\'' . $_SERVER['REMOTE_ADDR'] . '\'');
    }
     
    // -------
    // ETAPE 2 : on supprime toutes les entrées dont le timestamp est plus vieux que 5 minutes
     
    // On stocke dans une variable le timestamp qu'il était il y a 5 minutes :
    $timestamp_5min = time() - (60 * 5); // 60 * 5 = nombre de secondes écoulées en 5 minutes
    mysql_query('DELETE FROM connectes WHERE timestamp < ' . $timestamp_5min);
     
    ?>
    tout bon comme ça ou ???

    ////////editer

    y aurait-il pas un problème, genre il va sur la fiche_article.php?id=1596
    et que ensuite il va sur fiche_article.php?id=6785, il n'y aura pas d'incrémentation car l'adresse IP est déja conservée.....comment donc pourrais-je faire ?

    ta première solution est bonne aussi mais le problème c'est que j'ai beaucoup de page qui vont sur fiche_article.php donc je préfére ne pas y faire comme cela....
    Le no life répond "Counter Strike : Source"
    Le geek répond "Cascading Style Sheets"
    Ce n'est pas un hasard si deux choses vitales ont le même sigle

  4. #4
    Membre actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2007
    Messages
    193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2007
    Messages : 193
    Points : 207
    Points
    207
    Par défaut
    ça n'a pas l'aire mal ais je pense qu'il faudrait, dans ton cas, ajouter l'url de la page dans la bd.

    Si tu as beaucoup de visiteur ta bd va être lourde. pense au champs VARCHAR pour faire des indexs dans les tables!

Discussions similaires

  1. [Eclipse 4] Créer une page d'intro en utilisant les extensions
    Par Pedrodeo dans le forum Eclipse Platform
    Réponses: 1
    Dernier message: 09/07/2014, 20h49
  2. [Conception] comment créer une page pour modifier un Titre de site
    Par mecmec dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 03/11/2006, 01h39
  3. Créer une page par image ?
    Par Eliness dans le forum Langage
    Réponses: 10
    Dernier message: 01/01/2006, 17h34
  4. créer une page plan de site
    Par yvan02 dans le forum Langage
    Réponses: 7
    Dernier message: 09/10/2005, 19h13
  5. Peut-on créer une page internet via JBuilder?
    Par Xavier dans le forum JBuilder
    Réponses: 2
    Dernier message: 17/02/2005, 21h21

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