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
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
Avec du javascript, et la balise meta refresh.
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
J'ai essayé ceci :
mais la page se recharge à l'infini…
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>
et si je mets dans le <head>
ça ne fonctionne pas du tout
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>
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.
- 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
oui je m'en suis rendu compte pour la balise meta
Par contre, comment tu passes en paramètre la variable i…
- 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
ok, je cherche donc de ce coté
J'ai donc cherché comment faire…
Ca ne fonctionne pas, mais est-ce que je suis sur la bonne voie ?
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>
C'est carrément pas mal, mais c'est normal que ça ne marche pas...
Regarde ça, c'est pas bô, non ?
Du coup, j'ai juste survolé la suite.
Code : Sélectionner tout - Visualiser dans une fenêtre à part $_SESSION['i'] = 'i++';
- 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
En effet, si je déclare i++, ça ne va pas le faire ! rire
Ca ne fonctionne toujours pas, mais au moins la page s'affiche…
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']++; } ?>
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…
Code non testé, mais ça doit te donner une piste.
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 -->
- 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
J'ai fait comme ceci (ça fonctionne )
avant le doctype :
dans le <head>
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); ?>
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
1
2
3
4
5
6
7 <?php while ($cpt <= 5) { echo ("<meta http-equiv=\"refresh\" content=\"1\" />"); $cpt++; } ?>
contenu de unlink.php :
Code : Sélectionner tout - Visualiser dans une fenêtre à part <a href=\"unlink.php\"><img></a>
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… )
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>
Merci Jml94 pour ton aide
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…
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>
Pour recommencer la séquence, tu peux mettre un lien de ce genre :
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\" />"); ?>
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 non testé
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; ?>
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
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.
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
J'ai modifié, mais ça tourne toujours autant à vide
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
Argh, cette errur m'avait aussi échappée :
Il faut plutôt
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\" />"); ?>
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
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager