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 :

Difficulté avec les timers


Sujet :

PHP & Base de données

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Autre
    Inscrit en
    Mai 2016
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Mai 2016
    Messages : 64
    Points : 26
    Points
    26
    Par défaut Difficulté avec les timers
    Bonsoir

    Au secours! Cela fait maintenant plusieurs heures que je m'arrache le peut de cheveux qu'il me reste sur mes timers. je ne maitrise absolument pas cela alors j'ai décidé en fin d'après midi de m'y pencher mais je coince.

    Ce que je souhaitais faire:

    -Un compte à rebours, et l'améliorer en système d'achat.

    C'est à dire cliquer sur un bouton , celui-ci disparaît et se lance alors un chrono, puis à la fin du chrono le bouton réparait; mais ce n'est pas tout c'est surtout la que je coince. Faire en sorte que si l'ont quitte la page le chrono s'enregistre en BDD et c'est la que réside mon véritable problème. J'ai cherche un peu partout sur le net, j'ai trouvé pas mal de script tous très différents mais je n'en comprend presque aucun donc je n'ai pas réussi à m'en aider.

    Merci d'avance

    PS: code:

    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    $req=$bdd->prepare('SELECT * FROM c_rebour');
    $req->execute(array(''));
    $aff=$req->fetch();
     
    $t_u = date_create($aff['temps_un']);
    echo $t_u->format('D:H:i:s');
    echo "</br></br>";
    $t_d = $aff['temps_deux'];
    $nv=($t_u-$t_d);
    echo $nv;
     
     
     
    ?>
             <script language="JavaScript">
     
                    function t()
                    {
                var compteur=document.getElementById('compteur');
                s=duree;
                m=0;h=0;
                if(s<0)
                            {
                                    compteur.innerHTML=""
                }
                            else
                            {
                                    if(s>59)
                                    {
    									    m=Math.floor(s/60);
                                            s=s-m*60
     
                    }
                                    if(m>59)
                                    {
                                            h=Math.floor(m/60);
                        m=m-h*60
                                    }
                    if(s<10)
                                    {
                                            s="0"+s
                    }
                    if(m<10)
                                    {
                        m="0"+m
                    }
                      compteur.innerHTML=h+":"+m+":"+s+""
                }
                duree=duree-1;
                window.setTimeout("t();",999);
     
            }
     
                    </script>
                    <div id="compteur"></div>
                    <script language="JavaScript">
                            duree="<?php echo $t_d; ?>";
                            t();
                    </script>

  2. #2
    Membre émérite
    Avatar de badaze
    Homme Profil pro
    Chef de projets info
    Inscrit en
    Septembre 2002
    Messages
    1 412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets info
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 412
    Points : 2 522
    Points
    2 522
    Par défaut
    Que veux-tu dire par "quitter la page" ? C'est la fermer ? Revenir en arrière ? Changer d'onglet ?

    Par exemple pour la fermeture d'une page, avec l'évènement js onbeforeunload tu peux appeler un script ajax qui met à jour ton compteur.

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Autre
    Inscrit en
    Mai 2016
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Mai 2016
    Messages : 64
    Points : 26
    Points
    26
    Par défaut
    Je parles de changer d'un changement de page ou une actualisation.

  4. #4
    Membre émérite
    Avatar de badaze
    Homme Profil pro
    Chef de projets info
    Inscrit en
    Septembre 2002
    Messages
    1 412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets info
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 412
    Points : 2 522
    Points
    2 522
    Par défaut
    Avec IE.
    onblur se déclenche quand tu changes d'onglet.
    onfocus se déclenche quand tu reviens sur l'onglet.

    Le rafraichissement déclenche onblur puis onbeforeunload puis onfocus.
    La fermeture de l'onglet déclenche onblur puis onbeforeunload.

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <body onbeforeunload="alert('onbeforeunload');" onblur="alert('onblur');" onfocus="alert('onfocus');">
     
    </body>

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Autre
    Inscrit en
    Mai 2016
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Mai 2016
    Messages : 64
    Points : 26
    Points
    26
    Par défaut
    Okay mais j'ai du mal m'exprimer.

    Ce que je veux moi c'est que le temps se sauvegarde en base de donnée.

    Exemple l'achat d'un produit met 1minute.

    Je clique sur le bouton, le temps se déclenche il va de 1 minute à 0 minute. Et se temps sa il se sauvegarde dans la base de donnée, pour qu'on puisse naviguer ailleurs sur le site et que le temps s'écoule quand même.

    C'est cela que je n'arrive pas à faire.

  6. #6
    Membre émérite
    Avatar de badaze
    Homme Profil pro
    Chef de projets info
    Inscrit en
    Septembre 2002
    Messages
    1 412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets info
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 412
    Points : 2 522
    Points
    2 522
    Par défaut
    Je ne vois pas à quoi cela peut servir de sauvegarder dans une table d'autant plus que tu es obligé de sauvegarder aussi un identifiant de session pour pouvoir ensuite rappeler la valeur sauvegardée.
    N'oublie pas que l'heure d'un timer sur un navigateur est l'heure du PC qui visualise la page et non pas celle du serveur qui héberge ton site.

    Tu peux par contre utiliser une variable de session qui enregistre l'heure du serveur quand tu sors d'une page et qui la rappelle quand tu entre sur une autre et la différence entre l'heure courante du serveur et celle sauvegardée te donne la différence.

    Pour te donner une idée.

    fichier test9417.php
    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
    27
    28
    29
    30
    31
    32
     
    <!DOCTYPE html>
    <html>
    <head>
    <title>Untitled</title>
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
    <script language="JavaScript" type="text/javascript">
    <!--
    function titi() {
      $(function() {
        res = Math.random();
           $.get('test9417b.php?r='+res, function(data2) {
        $('#toto').html(data2);       
         });
      });
    }
    function timer()
    {
     var x = setInterval(titi, 1000);
    }
    //-->
    </script>
     
    </head>
    <body onload="timer();">
    <table summary="">
    <tr>
    <td>Temps écoulé: </td><td id="toto"></td>
    </tr>
    </table>
    </body>
    </html>

    fichier test9417b.php
    Il ne doit y avoir aucun espace ni saut de ligne avant <?php
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php
    session_start();
    if (!isset($_SESSION['time'])) {
      $datetime         = new DateTime();
      $_SESSION['time'] = $datetime->format('Y-m-d H:i:s');;
    }
    $datetime1 = new DateTime();
    $datetime2 = new DateTime($_SESSION['time']);
    $interval  = $datetime1->diff($datetime2);
    $elapsed   = $interval->format('%y année %m mois %a jour %h heures %i minutes %s secondes');
    echo $elapsed;
    ?>

    Nom : Capture20180324_001.JPG
Affichages : 280
Taille : 21,4 Ko

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Autre
    Inscrit en
    Mai 2016
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Mai 2016
    Messages : 64
    Points : 26
    Points
    26
    Par défaut
    J'ai besoin de le sauvegarder puisqu'il s'agit d'un jeu avec un système d'achat.

    Et sinon pour la pièce jointe il y a bien un compte à rebour mais moi c'est plus le temps qui s'écoule de 10 à 0 plutôt que le temps qui passe.^^

  8. #8
    Membre émérite
    Avatar de badaze
    Homme Profil pro
    Chef de projets info
    Inscrit en
    Septembre 2002
    Messages
    1 412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets info
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 412
    Points : 2 522
    Points
    2 522
    Par défaut
    Rien ne t'empêche d'utiliser ce système pour sauvegarder aussi les données.
    Après pour le temps qui passe rien ne t'empêche de renvoyer un compte à rebours.

  9. #9
    Nouveau membre du Club
    Homme Profil pro
    Autre
    Inscrit en
    Mai 2016
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Mai 2016
    Messages : 64
    Points : 26
    Points
    26
    Par défaut
    D'accord, je vais essayer je m'y colle cette après midi et je vous tiendrais au courant de l'évolution.

    Merci

Discussions similaires

  1. Problème avec les timers
    Par Mouse Slider dans le forum SDL
    Réponses: 5
    Dernier message: 22/08/2006, 09h34
  2. [C#] Difficulté avec les catch
    Par Roach- dans le forum ASP.NET
    Réponses: 9
    Dernier message: 31/01/2006, 17h57
  3. [PIC] Pause avec les timers
    Par Ekinoks dans le forum Assembleur
    Réponses: 1
    Dernier message: 07/05/2005, 23h04
  4. [Débutant]Problème avec les timers
    Par mickael777 dans le forum MFC
    Réponses: 1
    Dernier message: 11/04/2005, 11h00

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