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 :

[PHP-JS] recharger la page un certain nombre de fois


Sujet :

Langage PHP

  1. #1
    Gunner4902
    Invité(e)
    Par défaut [PHP-JS] recharger la page un certain nombre de fois
    Bonjour,
    Je souhaiterai que ma page PHP se recharge comme si j'appuyais sur F5 un certain nombre de fois (par exemple 10) à un intervalle de 1 seconde entre chaque rechargement, puis qu'ensuite elle reste "normale".

    Comment faire celà ?

    Merci

  2. #2
    Membre régulier Avatar de TiEuAM
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 75
    Points : 101
    Points
    101
    Par défaut
    Avec du javascript, et la balise meta refresh.

  3. #3
    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
    Ou une variable de session et la balise refresh
    Ou un paramètre dans l'url et la balise refresh

    Tout dépend de ton besoin.
    • 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

  4. #4
    Gunner4902
    Invité(e)
    Par défaut
    J'ai essayé ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <script type="text/javascript">
    for (i=1; i<10; i++) {
    window.setTimeout("window.location.reload();",1000);
    }
    </script>
    mais la page se recharge à l'infini…

    et si je mets dans le <head>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <script type="text/javascript">
    for (i=1; i<10; i++) {
    <meta http-equiv="refresh" content="1" />
    }
    </script>
    ça ne fonctionne pas du tout

    en fait le problème est que comme la page se recharge à chaque fois, l'on doit toujours s'arreter à 1, rechargement => 1, etc, donc on ne peut arriver à 10 de cette manière…
    Je vais regarder du coté des sessions, mais je ne connais pas du tout.
    Dernière modification par Gunner4902 ; 03/12/2008 à 10h37.

  5. #5
    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 Gunner4902 Voir le message
    J'ai essayé ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <script type="text/javascript">
    for (i=1; i<10; i++) {
    window.setTimeout("window.location.reload();",1000);
    }
    </script>
    mais la page se recharge à l'infini…
    Lorsque tu reload, tu réinitialise ta variable i. Il faut la passer en paramètre.
    Citation Envoyé par Gunner4902 Voir le message
    et si je mets dans le <head>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <script type="text/javascript">
    for (i=1; i<10; i++) {
    <meta http-equiv="refresh" content="1" />
    }
    </script>
    ça ne fonctionne pas du tout
    La balise meta, c'est du html, pas du js.
    • 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

  6. #6
    Gunner4902
    Invité(e)
    Par défaut
    oui je m'en suis rendu compte pour la balise meta
    Par contre, comment tu passes en paramètre la variable i…

  7. #7
    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 Gunner4902 Voir le message
    oui je m'en suis rendu compte pour la balise meta
    Par contre, comment tu passes en paramètre la variable i…
    Personnellement, j'utiliserais plutôt une variable de session et la balise <meta>, ce sera beaucoup plus simple et non dépendant de l'activation de js.
    • 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

  8. #8
    Gunner4902
    Invité(e)
    Par défaut
    ok, je cherche donc de ce coté

  9. #9
    Gunner4902
    Invité(e)
    Par défaut
    J'ai donc cherché comment faire…
    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
     
    <?php
     session_start();
     $_SESSION['i'] = 'i++';
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="en">
     <head>
     <?php
     $_SESSION['i'] = 1;
     while ($_SESSION['i'] <= 10) {
     echo ("<meta http-equiv=\"refresh\" content=\"10000\" />");
     }
     ?>
     </head>
    Ca ne fonctionne pas, mais est-ce que je suis sur la bonne voie ?

  10. #10
    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 Gunner4902 Voir le message
    J'ai donc cherché comment faire…
    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
     
    <?php
     session_start();
     $_SESSION['i'] = 'i++';
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="en">
     <head>
     <?php
     $_SESSION['i'] = 1;
     while ($_SESSION['i'] <= 10) {
     echo ("<meta http-equiv=\"refresh\" content=\"10000\" />");
     }
     ?>
     </head>
    Ca ne fonctionne pas, mais est-ce que je suis sur la bonne voie ?
    C'est carrément pas mal, mais c'est normal que ça ne marche pas...
    Regarde ça, c'est pas bô, non ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $_SESSION['i'] = 'i++';
    Du coup, j'ai juste survolé la suite.
    • 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

  11. #11
    Gunner4902
    Invité(e)
    Par défaut
    En effet, si je déclare i++, ça ne va pas le faire ! rire

    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
    <?php
     session_start();
     $_SESSION['i'] = '1';
    ?>
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="en">
    <head>
    <?php
    $_SESSION['i'] = 1;  //doit-on le remettre vu qu'il est déclaré sous session_star ?
    while ($_SESSION['i'] <= 10)
    {
    echo ("<meta http-equiv=\"refresh\" content=\"10000\" />");
    $_SESSION['i']++;
    }
     ?>
    Ca ne fonctionne toujours pas, mais au moins la page s'affiche…
    Le problème est visiblement que je n'ai pas compris comment mettre en mémoire le résultat de i++ et de le retourner lors de chaque rechargement…

  12. #12
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
    session_start();
    // un switch pour savoir si nous somme au premier passage
    isset($_SESSION['nbRefresh']) ? $nbView = $_SESSION['nbView'] + 1 : $nbView = 1;
    // maintenant qu'on a géré le compteur, nous le stockons pour le prochain passage
    $_SESSION['nbView'] = $nbView;
    ?>
     
    <!-- je mets une balise meta s'il le faut -->
    Code non testé, mais ça doit te donner une piste.
    • 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

  13. #13
    Gunner4902
    Invité(e)
    Par défaut
    J'ai fait comme ceci (ça fonctionne )

    avant le doctype :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?php
    session_start();
    $fichier="cpt.txt";
       $inF = fopen($fichier,"a");
       fputs($inF,"0"); 
       fclose($inF);
    $cpt = filesize($fichier);
    ?>
    dans le <head>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?php
    while ($cpt <= 5)
    {
    echo ("<meta http-equiv=\"refresh\" content=\"1\" />");
    $cpt++;
    }
    ?>
    et j'ai mis un lien sur l'image pour supprimer cpt.txt, et ainsi relancer une séquence :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href=\"unlink.php\"><img></a>
    contenu de unlink.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <html>
    <meta http-equiv="refresh" content="0;URL=../index.php">
    <?php
    unlink ("cpt.txt");
    ?>
    </html>
    Sans doute pas le plus simple, mais comme je ne suis pas doué en PHP, ça a au moins le mérite de fonctionner (on va pas dire que j'ai quand meme mis 6 heures pour arriver à un truc aussi simple… )

    Merci Jml94 pour ton aide

  14. #14
    Gunner4902
    Invité(e)
    Par défaut
    Euh, il y a un petit soucis… le fichier txt ne se supprime pas automatiquement avec la fin de session (fermeture du navigateur, ce qui fait que quand je rouvre le navigateur, rien ne se passe…)

    Si quelqu'un à la solution toute faite, parce que là, après 6 heures… je baisse les bras…

  15. #15
    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
    avant le doctype :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?php
    session_start();
    if (isset($_SESSION['cpt']))
        $cpt = $_SESSION['cpt'] + 1;
    else
        $cpt = 1;
    ?>

    dans le <head>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php
    while ($cpt <= 5)
        echo ("<meta http-equiv=\"refresh\" content=\"1\" />");
    ?>
    Pour recommencer la séquence, tu peux mettre un lien de ce genre :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href='mapage.php?reset'>Reset</a>

    Ce qui transforme notre premier code :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
    session_start();
    if (isset($_GET['reset']))
        $cpt = 1;
    elseif (isset($_SESSION['cpt']))
        $cpt = $_SESSION['cpt'] + 1;
    else
        $cpt = 1;
    ?>
    code non testé
    Comme tu peux le constater, point besoin de fichier texte.
    • 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

  16. #16
    Gunner4902
    Invité(e)
    Par défaut
    Merci jml

    J'ai testé le code, la page s'actualise en permanence, sans rien afficher et le poids de la page monte rapidement à plusieurs Mo.

    au vu de mes compétences en dessous de la moyenne, je ne peux pas dire qu'est-ce qui génère celà, mais on dirait que ça tourne en roue libre…

    En tous cas, cette solution m'intéresse fortement.

  17. #17
    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
    Oups !

    C'est peut-être normal, j'oublie de stocker la nouvelle valeur en session, d'où boucle infinie.

    Correction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <?php
    session_start();
    if (isset($_GET['reset']))
        $cpt = 1;
    elseif (isset($_SESSION['cpt']))
        $cpt = $_SESSION['cpt'] + 1;
    else
        $cpt = 1;
    $_SESSION['cpt'] = $cpt; // ne pas oublier d'actualiser la valeur de session ! :D
    ?>
    • 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

  18. #18
    Gunner4902
    Invité(e)
    Par défaut
    J'ai modifié, mais ça tourne toujours autant à vide

  19. #19
    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
    Encore une modif, qui ne résoud pas le problème, mais qui montre le compteur.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php
    session_start();
    if (isset($_GET['reset']))
        $cpt = 1;
    elseif (isset($_SESSION['cpt']))
        $cpt = $_SESSION['cpt'] + 1;
    else
        $cpt = 1;
    $_SESSION['cpt'] = $cpt; // ne pas oublier d'actualiser la valeur de session ! :D
    print "<h1>$cpt</h1>";
    ?>
    • 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

  20. #20
    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
    Argh, cette errur m'avait aussi échappée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php
    while ($cpt <= 5)
        echo ("<meta http-equiv=\"refresh\" content=\"1\" />");
    ?>
    Il faut plutôt

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php
    if ($cpt <= 5)
        echo ("<meta http-equiv='refresh' content='1' />");
    ?>
    • 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

Discussions similaires

  1. répéter un même caractère un certain nombre de fois
    Par s.rais dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 15/11/2010, 15h40
  2. select de valeurs enregistrées un certains nombre de fois
    Par diabli73 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 14/10/2008, 16h54
  3. [X] Imprimer un certain nombre de fois la meme page?
    Par lolo6413 dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 29/04/2008, 16h18
  4. [PHP-JS] Rechargement de page/Conservation d'information
    Par Orbiplanax dans le forum Langage
    Réponses: 7
    Dernier message: 06/11/2007, 13h50
  5. [AJAX] Recharger un menu deroulant php sans recharger la page
    Par ns_deux dans le forum Général JavaScript
    Réponses: 25
    Dernier message: 22/07/2006, 15h59

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