Délai d'occupation

Bonjour, je suis debutante en php j'ai besoin de votre aide pour la realisation de mon application web,en fait j'ai besoin de changer un attribut dans ma base de donnée aprés un délai spécifier par l'internaute je me bloque quelqu'un qui a une idée svp merci d'avance

4 réponses

  1. Peux t-on voir ton code pour plus d'information?
    Merci beaucoup
    0
    1. a Priori c est un code javascript sur un setinterval("fctMAJ.php?Id="+formId+"&valeur="+formvalue")
      https://www.toutjavascript.com/reference/ref-window.setinterval.php
      NB pas obligé de passer par un formulaire evenement button onclick

      fctMAJ.php
      connection a la Bdd puis MAJ des donnees

      $result = mysql_query('UPDATE MATABLE SET colonne = " '.$_GET['Valeur']. ' "WHERE ID='.$_GET['Id']);

      https://sql.sh/cours/update
      0
      1. par contre si il change de page avant ???
        0
      2. il me semble que setinterval va repeter l'instruction dans chaque intervalle de temps mais moi j'ai besoin de changer un attribut aprés un delai donc aprés une recherche j'ai trouvé la fonction setTimeout donc j'ai mis setTimeout("fctMAJ.php",1000) ; mais il indique une erreur
        0
    2. SettimeOut active une fonction Javascript, et ne peut pas exécuter une page php comme cela.
      De toute façon, le javascript étant un langage client, si celui-ci ferme sa page, le code ne va pas s'exécuter, et ce n'est pas ce que tu souhaite.

      La solutions la plus simple est d'enregistré les actions à faire dans une table, grâce à une tâche Cron tu pourra ainsi les traiter le moment venu.
      0
      1. y aussi ouvrir un Iframe en hidden
        0
    3. <script>
      function fctMAJ() {
           var Ef=document.getElementsByName("suivi");
           if ( Ef.length==0 ) {
               Ef = document.createElement("IFRAME");
               Ef.setAttribute("name", "suivi");
               } else {Ef=Ef[0];}
               var Id=document.getElementsByName("Id")[0].value;
               var formvalue=document.getElementsByName("formvalue")[0].value;
               Ef.setAttribute("src", "fctMAJ.php?Id="+formId+"&valeur="+formvalue);
               Ef.setAttribute("visibility", "hidden");
      document.appendChild(Ef);
      }
      
       setTimeout("fctMAJ",1000) ;
      </script>
      0
      1. Le problème est le même, si l'internaute ferme sa page, ton code sera pas exécuté.
        Tu complique en plus un système très simple qui est l'ajax avec tes iframes ...

        Mais ça ne peut de toute façon pas marcher si on veut permettre à l'utilisateur de fermer la page avant la fin. (L'intérêt est inexistant d'ailleurs, on lui dit de rentrer un délai pour déclencher une action, mais faut qu'il reste devant pour qu'elle soit lancé ?)

        Enfin bref...
        0