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 :

Effectuer une requête toutes les XX minutes


Sujet :

Langage PHP

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Effectuer une requête toutes les XX minutes
    Chers internautes, bonsoir.

    En tant que nouveau membre, je me permet de poster ici ce soir même afin de faire appel à vos compétences ultras développées :p ?!

    En effet, depuis quelques temps maintenant je me suis lancé dans le php et aujourd'hui, je bloque sur un point que je n'arrive pas à résoudre.

    Le problème étant le suivant :

    J'aimerais si possible effectuer une action via une requête toute les XX minutes sans passer par une frame et sans rafraichir la page mais je ne sais nullement comment procéder.

    Je viens donc chercher de l'aide envers vous afin de savoir quelles étapes dois-je suivre et surtout comment procéder.


    En espérant avoir une réponse prochainement de votre part, je vous prie a tous et à toutes d'agréer mes plus sincères remerciements.

    Cordialement, TrinityDiz, un jeune développeur.

  2. #2
    Membre habitué
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2008
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2008
    Messages : 215
    Points : 170
    Points
    170
    Par défaut
    Bonjour,

    Tu es vraiment obligé de faire une requête toutes les XX minutes, tu ne peux pas 'mettre une condition' pour lancer la requête ?

    Qu'est-ce ce que tu veux faire vraiment en fait ?

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Bonsoir niki59,

    Tout d'abord, merci à toi pour ta première réponse aussi rapide.

    Ensuite, pour te répondre, c'est très simple :

    Le membre se situe sur une page quelconque... " supposons que des pubs soient sur cette page " ..
    Eh bien ce que j'aimerais faire, c'est effectuer une requete sql qui crédite ce-dit visiteur de XX points toutes les XX minutes parce que ce dernier visionne justement ces pubs.

    Néanmoins j'aimerais ne pas avoir a passer par des frames et à ne pas avoir à rafraichir la page

    En esperant avoir été assez clair, cordialement, Trinity

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 27
    Points : 16
    Points
    16
    Par défaut
    Si tu veux lancer un script avec un intervalle régulier tu peux utiliser la méthode CRON.
    Pour les infos (anglais) c'est ici : Introduction Cron
    ou encore sur ce forum ici : Exécution périodique d'un script PHP

    Si tu peux reconnaitre chaque visiteur (ip) qui visionne ta page, tu peux lancer un script ajax peut-être? il sera détaché de ta page, j'entends par là qu'il n'y aura pas de rechargement ...

    En espérant t'avoir donné des pistes pour la suite,
    N'Joy

  5. #5
    Membre expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Points : 3 972
    Points
    3 972
    Par défaut
    Bonjour,

    Je pense que Mescaline sort le gros matos pour rien.

    Par contre les pubs dont tu parles sont-elles bien sur ton site internet ? Aussi, il faudra executer le script suivant dans la page qui contient les pubs. De cette manière tant qu'il regardera les pubs il sera crédité de n points. Cependant quelle condition définit quand s'arrête l'incrémentation des points ? Car sinon il suffit pour l'internate de lancer la page dans un nouvel onglet et il a des points a l'infini...

    Pour faire ceci il te suffit de coupler JavaScript et 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
     
    function refreshPoints(utilisateur_id){
        getXhr();
        xhr.onreadystatechange = function()
          {
          if(xhr.readyState == 4 && xhr.status == 200)
              {
              var points = xhr.responseText;
              document.getElementById('container').innerHTML = points; 
              }
          }
        xhr.open("POST","/scripts/ajouterpoints.php",true);
        xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
        xhr.send("utilisateur_id="+utilisateur_id);
    }
     
    var xhr = null;
    function getXhr(){if(window.XMLHttpRequest)xhr = new XMLHttpRequest();else if(window.ActiveXObject){try{xhr = new ActiveXObject("Msxml2.XMLHTTP");}catch(e){xhr = new ActiveXObject("Microsoft.XMLHTTP");}}else{alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...vous n'aurez donc pas accès aux mises à jour, installez un navigateur plus récent (Mozilla Firefox, Internet Explorer 5 [...])");xhr = false;}}
    Et dans la page des publicités :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <script type="text/javascript">
    var utilisateur_id = "<?php echo $utilisateur_id; ?>";
    var timer = setInterval('refreshPoints("'+utilisateur_id+'")',20000);
    </script>
    <div class="UserPoints">
        Vous possédez <span id="container">100</span> points.
    </div>
    Le script ajouterpoints.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    if(isset($_GET['utilisateur_id'])){
        $increment_points = 10;
        $utilisateur_id = $_GET['utilisateur_id'];
        $sql = mysql_query('SELECT points FROM utilisateurs WHERE utilisateur_id='.$utilisateur_id);
        $points = mysql_result($sql,0,'points');
        $points = $points + $increment_points;
        $sql = mysql_query('UPDATE utilisateurs SET points='.$points.' WHERE utilisateur_id='.$utilisateur_id);
       echo $points;
    }
    Code non testé, bonne journée

  6. #6
    Membre expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545
    Par défaut
    Citation Envoyé par TrinityDiz Voir le message
    Bonsoir niki59,

    Tout d'abord, merci à toi pour ta première réponse aussi rapide.

    Ensuite, pour te répondre, c'est très simple :

    Le membre se situe sur une page quelconque... " supposons que des pubs soient sur cette page " ..
    Eh bien ce que j'aimerais faire, c'est effectuer une requete sql qui crédite ce-dit visiteur de XX points toutes les XX minutes parce que ce dernier visionne justement ces pubs.

    Néanmoins j'aimerais ne pas avoir a passer par des frames et à ne pas avoir à rafraichir la page

    En esperant avoir été assez clair, cordialement, Trinity
    Fonctionnellement, c'est bancale : tu veux créditer des points parce que le visiteur visionne les pubs. Mais qu'est-ce qui t'assure qu'il visionne les pubs s'il n'y a aucune action sur la page ?
    Si je laisse la page ouverte et que je vais dormir, je serais pété de points le matin alors que je n'aurais rien vu.

    Bref, je ne vois pas l'intérêt fonctionnel.
    • Avant de poser une question, n'hésitez pas à chercher dans la FAQ et les forums
    • Merci d'utiliser les balises de code (# dans l'éditeur)
    • N'oubliez pas de vous servir des boutons , et

    S.N.A.F.U

  7. #7
    Membre émérite
    Avatar de Seb33300
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    1 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Thaïlande

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 563
    Points : 2 390
    Points
    2 390
    Par défaut
    Et en plus, une personne qui s'y conné un minimum va pouvoir récupérer l'adresse du lien qui crédite les points pour s'en ajouter à l'infini.
    Zend Certified PHP Engineer

    « Crois-tu comprendre le monde juste en matant le 20H Ou connaître l'histoire en ayant lu que l'angle des vainqueurs ? » Keny Arkana

  8. #8
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Bonjour à tous et à toutes,

    Comme certains ont pu le démontrer, rien ne me montrera que le-dit membre sera entrain de visionner des pubs sur la page mais la page des pubs étant un exemple, sa ne pose pas de soucis :p

    Maintenant pour répondre au mieux à vos questions voici quelques informationss supplémentaires :

    "Cependant quelle condition définit quand s'arrête l'incrémentation des points ? "
    => La page dont je parle s'ouvrant dans un pop-up, l'incrémentation des points est censé s'arrêter lorsque le membre ferme ce dernier.


    " Si tu peux reconnaitre chaque visiteur (ip) qui visionne ta page, tu peux lancer un script ajax peut-être? "
    => On ma effectivement sur un autre forum conseillé ajax mais n'ayant jamais utilisé ce très chers ajax, je ne sais absolument pas ou chercher et vers ou me renseigner.


    " Mais qu'est-ce qui t'assure qu'il visionne les pubs s'il n'y a aucune action sur la page ? "
    Rien ne m'assure que cette personne visionne les pubs dont je parle mais les pubs n'étant qu'un exemple, peu importe. De plus, j'aimerais arrêter l'incrementation des points, en plus de les arreter lors de la fermeture du pop up, lorsque le membre arrive a XX minutes
    Ex : Le membre est présent sur cette page durant 5h00, je coupe l'incrémentation.



    " Et en plus, une personne qui s'y connait un minimum va pouvoir récupérer l'adresse du lien qui crédite les points pour s'en ajouter à l'infini. "
    => Justement, j'aimerais également que ce soit vraiment sécurisé à ce niveau là :s ...


    Je sais que j'en demande peut être beaucoup mais je sais que cela est possible, cependant n'ayant pas les connaissances nécessaires, je fait appel à vous


    En vous remerciant tous et toutes d'avoir pris le temps de me répondre, cordialement, Trinity

  9. #9
    Membre expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Points : 3 972
    Points
    3 972
    Par défaut
    On ma effectivement sur un autre forum conseillé ajax mais n'ayant jamais utilisé ce très chers ajax, je ne sais absolument pas ou chercher et vers ou me renseigner.
    Je t'ai donné le code complet dans mon message précédent.

    " Et en plus, une personne qui s'y connait un minimum va pouvoir récupérer l'adresse du lien qui crédite les points pour s'en ajouter à l'infini. "
    => Justement, j'aimerais également que ce soit vraiment sécurisé à ce niveau là :s ...
    Je pense que via un htaccess tu peux bloquer l'accès à ces scripts depuis l'url et ne limiter l'accès qu'au serveur. À vérifier.

    Sinon je pense que comme tu l'as dit il est important de définir un seuil maximal de récupération des points. (pas plus de 1000 Points par jour par exemple).

Discussions similaires

  1. [MySQL] Execution d'une requête toutes les 24 heures
    Par jcaspar dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 19/09/2008, 14h47
  2. [Dates] Faire varier une donnée toutes les 30 minutes
    Par esther60 dans le forum Langage
    Réponses: 7
    Dernier message: 18/04/2008, 20h18
  3. Réponses: 1
    Dernier message: 16/05/2007, 15h52
  4. Executer une fonction tout les X minutes
    Par Fabouney dans le forum C
    Réponses: 6
    Dernier message: 07/08/2006, 19h33
  5. Lancer une fct toutes les x minutes
    Par mambo dans le forum MFC
    Réponses: 8
    Dernier message: 21/06/2006, 23h16

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