Redirection après quelques secondes et affichage d'une page

Redirection après quelques secondes et affichage d'une page - PHP - Programmation

Marsh Posté le 07-12-2005 à 11:54:08    

Bonjour, je voudrais faire une page d'attente (Votre compte a bien été validé, vous allez être redirigé vers ...) qui s'affiche pendant quelques secondes, puis la redirection se fait.
 
J'ai bien pensé aux headers avec Location, mais le problème est qu'il ne faut rien envoyer avant. Comme j'imagine que c'est un problème plus ou moins classique, quelqu'un sait comment on fait?

Reply

Marsh Posté le 07-12-2005 à 11:54:08   

Reply

Marsh Posté le 07-12-2005 à 11:55:14    

daviso a écrit :

J'ai bien pensé aux headers avec Location, mais le problème est qu'il ne faut rien envoyer avant.


En quoi c'est un problème ? :heink:


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 07-12-2005 à 11:59:22    

On ne peut pas mettre:
 

Code :
  1. <html>
  2. Redirection en cours...
  3. </html>
  4. <?php
  5. sleep(5);
  6. header("Location: http://www.php.net/" );
  7. ?>


 
Parce que sinon il proteste qu'il ne faut rien avoir envoyé avant les headers, et là j'ai déjà envoyé le html. [:airforceone]
 

Citation :

N'oubliez jamais que header() doit être appelée avant que le moindre contenu ne soit envoyé, soit par des lignes HTML habituelles dans le fichier, soit par des affichges PHP. Une erreur très classique est de lire un fichier avec include() ou require(), et de laisser des espaces ou des lignes vides, qui génèreront un affichage avant que la fonction header()  ne soit appelée. Le même problème existe avec les fichiers PHP/HTML standards.

Reply

Marsh Posté le 07-12-2005 à 12:00:50    

daviso a écrit :

On ne peut pas mettre:
 

Code :
  1. <html>
  2. Redirection en cours...
  3. </html>
  4. <?php
  5. sleep(5);
  6. header("Location: http://www.php.net/" );
  7. ?>


 
Parce que sinon il proteste qu'il ne faut rien avoir envoyé avant les headers, et là j'ai déjà envoyé le html. [:airforceone]
 

Citation :

N'oubliez jamais que header() doit être appelée avant que le moindre contenu ne soit envoyé, soit par des lignes HTML habituelles dans le fichier, soit par des affichges PHP. Une erreur très classique est de lire un fichier avec include() ou require(), et de laisser des espaces ou des lignes vides, qui génèreront un affichage avant que la fonction header()  ne soit appelée. Le même problème existe avec les fichiers PHP/HTML standards.



OMG :sweat:  
 
Sleep ça sert à créer un délai dans l'exécution du code, pas à faire une pause avant une redirection :sweat:


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 07-12-2005 à 12:01:37    

:sweat:
 
javascript bordel :o


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
Reply

Marsh Posté le 07-12-2005 à 12:02:46    

masklinn a écrit :

OMG :sweat:  
 
Sleep ça sert à créer un délai dans l'exécution du code, pas à faire une pause avant une redirection :sweat:


Comme tu veux... mais ce n'est pas le problème. Ceci dit, si tu as mieux...

Reply

Marsh Posté le 07-12-2005 à 12:03:36    

black_lord a écrit :

:sweat:
 
javascript bordel :o


 
Infaisable en PHP?

Reply

Marsh Posté le 07-12-2005 à 12:06:21    

daviso a écrit :

Comme tu veux... mais ce n'est pas le problème. Ceci dit, si tu as mieux...


ben si c'est le problème justement.
 
Je propose qu'on fasse passer des test psychologiques avant d'autoriser les gens à toucher à du PHP :o


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
Reply

Marsh Posté le 07-12-2005 à 12:07:31    

black_lord a écrit :

:sweat:
 
javascript bordel :o


meta refresh :o


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 07-12-2005 à 12:10:44    

black_lord a écrit :

ben si c'est le problème justement.
 
Je propose qu'on fasse passer des test psychologiques avant d'autoriser les gens à toucher à du PHP :o


 
La question concernait la redirection après affichage d'une page, et je n'ai pas eu de réponse.
 
Concernant le sleep, je lis la doc et j'obtiens:

Citation :

sleep -- Arrête l'exécution durant quelques secondes


 
Ce qui convient parfaitement à ce que je veux faire. Alors si ça bouffe du CPU, je veux bien changer de fonction, mais ça n'est pas précisé dans la doc.

Reply

Marsh Posté le 07-12-2005 à 12:10:44   

Reply

Marsh Posté le 07-12-2005 à 12:12:20    

daviso a écrit :

La question concernait la redirection après affichage d'une page, et je n'ai pas eu de réponse.


raté t'en as eu 2

daviso a écrit :

Concernant le sleep, je lis la doc et j'obtiens:

Citation :

sleep -- Arrête l'exécution durant quelques secondes


 
Ce qui convient parfaitement à ce que je veux faire. Alors si ça bouffe du CPU, je veux bien changer de fonction, mais ça n'est pas précisé dans la doc.


Ca arrête l'exécution du code PHP, c'est n'importe quoi, si ton serveur web bufferise la page s'affichera jamais [:bistou tt]
 
T'as rien compris à la manière dont fonctionne le web [:sinorz-]


Message édité par masklinn le 07-12-2005 à 12:13:08

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 07-12-2005 à 12:19:28    

Il faut pas chercher 12h à 14h : Javascript ou meta_refresh.
sleep ou unsleep créé une pause mais ne l'arrête pas, car exit() lui arrête l'execution d'un script.  Néanmoins, le sleep n'est pas là pour régler le problème.  
-Php c'est bien mais il faut arrêter avec le coté "tout coté serveur".


Message édité par Berceker United le 07-12-2005 à 12:19:59
Reply

Marsh Posté le 07-12-2005 à 13:52:39    

OK, je vois effectivement pourquoi le sleep() ne marchera pas.
Je vais fouiller du côté du javascript.
 
Merci pour les réponses constructives. Dommage pour les autres.

Reply

Marsh Posté le 07-12-2005 à 14:12:32    

par moment il faut savoir reflechir par soi-meme et ne pas accuser les autres.  
 
Les solutions t'ont été données.  
 

Code :
  1. <meta http-equiv="refresh" content="1; URL=mapage.html">


 
c'est une solution sans javascript.


---------------
MZP est de retour
Reply

Marsh Posté le 07-12-2005 à 15:03:49    

cinocks a écrit :

par moment il faut savoir reflechir par soi-meme et ne pas accuser les autres.  
 
Les solutions t'ont été données.  
 

Code :
  1. <meta http-equiv="refresh" content="1; URL=mapage.html">


 
c'est une solution sans javascript.


 
En fait, je rêve d'un forum où la réponse serait quelque chose du genre:
 

Citation :

Tu peux utiliser le javascript, ou bien le meta-refresh:

Code :
  1. <meta http-equiv="refresh" content="1; URL=mapage.html">


 
Mais fais attention, le sleep() se contentera de geler l'exécution du script, donc n'enverra pas la page au navigateur avant la fin du script, et par conséquent n'aura pas l'effet que tu recherches.


 
Ca serait plus sympa que les "OMG", les "il a rien compris", ou de se poser des questions sur mon état psychologique dont je me demande bien ce qu'il vient faire dans l'histoire.
 
I had a dream today [:airforceone]

Message cité 2 fois
Message édité par daviso le 07-12-2005 à 15:04:26
Reply

Marsh Posté le 07-12-2005 à 15:06:10    

daviso a écrit :

En fait, je rêve d'un forum où la réponse serait quelque chose du genre:
 

Citation :

Tu peux utiliser le javascript, ou bien le meta-refresh:

Code :
  1. <meta http-equiv="refresh" content="1; URL=mapage.html">


 
Mais fais attention, le sleep() se contentera de geler l'exécution du script, donc n'enverra pas la page au navigateur avant la fin du script, et par conséquent n'aura pas l'effet que tu recherches.


 
Ca serait plus sympa que les "OMG", les "il a rien compris", ou de se poser des questions sur mon état psychologique dont je me demande bien ce qu'il vient faire dans l'histoire.
 
I had a dream today [:airforceone]


Ca sera peut être le cas quand tu te renseigneras avant et que tu ne poseras pas des questions triviales et débattues quelques millions de fois un peu partout sur le web [:spamafote]
 
Cadeau pour la prochaine fois: http://www.catb.org/~esr/faqs/smar [...] tml#before

Message cité 1 fois
Message édité par masklinn le 07-12-2005 à 15:09:07

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 07-12-2005 à 15:15:08    


 

Citation :

In the world of hackers, the kind of answers you get to your technical questions depends as much on the way you ask the questions as on the difficulty of developing the answer. This guide will teach you how to ask questions in a way that is likely to get you a satisfactory answer.
 
Now that use of open source has become widespread, you can often get answers from other, more experienced users, rather than hackers. This is a Good Thing; users tend to be just a little bit more tolerant of the kind of failures newbies often have.
 
[...]
 
Despite this, hackers have a reputation for meeting simple questions with what looks like hostility or arrogance.
 
[..]
 
We're (largely) volunteers. We take time out of busy lives to answer questions, and at times we're overwhelmed with them. So we filter ruthlessly. In particular, we throw away questions from people who appear to be losers in order to spend our question-answering time more efficiently, on winners.


 
Un rien arrogant peut-être comme philosophie?  :sarcastic:  
 

Reply

Marsh Posté le 07-12-2005 à 15:23:27    

daviso a écrit :

Citation :

In the world of hackers, the kind of answers you get to your technical questions depends as much on the way you ask the questions as on the difficulty of developing the answer. This guide will teach you how to ask questions in a way that is likely to get you a satisfactory answer.
 
Now that use of open source has become widespread, you can often get answers from other, more experienced users, rather than hackers. This is a Good Thing; users tend to be just a little bit more tolerant of the kind of failures newbies often have.
 
[...]
 
Despite this, hackers have a reputation for meeting simple questions with what looks like hostility or arrogance.
 
[..]
 
We're (largely) volunteers. We take time out of busy lives to answer questions, and at times we're overwhelmed with them. So we filter ruthlessly. In particular, we throw away questions from people who appear to be losers in order to spend our question-answering time more efficiently, on winners.


 
Un rien arrogant peut-être comme philosophie?  :sarcastic:


Sûrement beaucoup plus arrogant qu'exiger une réponse à une question mal posée alors qu'on a pas compris le langage (pas plus que le problème qu'on a), oui http://membres.lycos.fr/angel2k/petrus/petruseaf.gif

Message cité 1 fois
Message édité par masklinn le 07-12-2005 à 15:24:04

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 07-12-2005 à 15:27:02    

masklinn a écrit :

Sûrement beaucoup plus arrogant qu'exiger une réponse à une question mal posée alors qu'on a pas compris le langage (pas plus que le problème qu'on a), oui http://membres.lycos.fr/angel2k/petrus/petruseaf.gif


 
Bon, suite en MP, parce que là on est largement HS.

Reply

Marsh Posté le 07-12-2005 à 15:28:59    

daviso a écrit :

En fait, je rêve d'un forum où la réponse serait quelque chose du genre:
 

Citation :

Tu peux utiliser le javascript, ou bien le meta-refresh:

Code :
  1. <meta http-equiv="refresh" content="1; URL=mapage.html">


 
Mais fais attention, le sleep() se contentera de geler l'exécution du script, donc n'enverra pas la page au navigateur avant la fin du script, et par conséquent n'aura pas l'effet que tu recherches.


 
Ca serait plus sympa que les "OMG", les "il a rien compris", ou de se poser des questions sur mon état psychologique dont je me demande bien ce qu'il vient faire dans l'histoire.
 
I had a dream today [:airforceone]


 
On reve aussi d'un forum où les questions sont bien posées, où celui qui les pose se sera penché dessus. Ce qui t'aurais permis de voir rapidement que le sleep n'a rien à faire ici.
On reve aussi de membres ayant fait des recherches avant, au lieu de se pointer comme si de rien etait. Tu aurais trouvé pour larecherche la plus simple comme html redirection, la reponse suivante:  
 
http://www.aidoforum.com/tutoriaux [...] -page.html
 
Qui figure en premier lien des reponses pour:
 
http://www.google.fr/search?hl=fr& [...] DcountryFR


---------------
MZP est de retour
Reply

Marsh Posté le 07-12-2005 à 15:33:50    

cinocks a écrit :

On reve aussi d'un forum où les questions sont bien posées, où celui qui les pose se sera penché dessus. Ce qui t'aurais permis de voir rapidement que le sleep n'a rien à faire ici.
On reve aussi de membres ayant fait des recherches avant, au lieu de se pointer comme si de rien etait. Tu aurais trouvé pour larecherche la plus simple comme html redirection, la reponse suivante:  
 
http://www.aidoforum.com/tutoriaux [...] -page.html
 
Qui figure en premier lien des reponses pour:
 
http://www.google.fr/search?hl=fr& [...] DcountryFR


 
Là, désolé, les MP à 3, je ne sais pas faire.

Reply

Marsh Posté le 07-12-2005 à 15:47:56    

je ne le demande pas. ;)


---------------
MZP est de retour
Reply

Marsh Posté le 07-12-2005 à 15:51:44    

Code :
  1. <?php
  2. header("Refresh: 5; URL=http://www.site.com/pagesuivante.php" );
  3. ?>
  4. <!-- HTML -->

Reply

Marsh Posté le 07-12-2005 à 15:59:31    

sielfried a écrit :

Code :
  1. <?php
  2. header("Refresh: 5; URL=http://www.site.com/pagesuivante.php" );
  3. ?>
  4. <!-- HTML -->



 
Merci.  :jap:

Reply

Marsh Posté le 07-12-2005 à 19:07:25    

En même temps, c'est relou ce genre de pages. L'utilisateur a horreur d'attendre pour rien, alors même 5 secondes c'est trop...

Reply

Marsh Posté le 07-12-2005 à 21:06:46    

FlorentG a écrit :

En même temps, c'est relou ce genre de pages. L'utilisateur a horreur d'attendre pour rien, alors même 5 secondes c'est trop...


Pourtant sur HFR tu t'y fais.

Reply

Marsh Posté le 07-12-2005 à 21:11:04    

Berceker United a écrit :

Pourtant sur HFR tu t'y fais.


Bof... C'est relou... Enfin c'est sûr que ça dure pas 5 secondes ;)

Reply

Marsh Posté le 07-12-2005 à 22:50:49    

on peut aussi mettre un lien:
 

Citation :

pour retourner directement à telle page, cliquez ici...

Reply

Marsh Posté le 07-12-2005 à 23:16:31    

FlorentG a écrit :

En même temps, c'est relou ce genre de pages. L'utilisateur a horreur d'attendre pour rien, alors même 5 secondes c'est trop...


+1, devrais y avoir moyen de les virer.
J'ai virer ce genre de message sur mon forum, ça donne une impression de rapidité, c'est impressionnant.
La première fois, c'est bien de savoir qu'on va être redirigé, la deuxième fois, on s'en fout, de la troisième à la dixième, ça gonfle sévère et après, faute de mieux, on s'y fait parce qu'on ne peut rien y changer. :D

Reply

Marsh Posté le 08-12-2005 à 09:37:05    

Ca permet d'eviter les retour arriere intempestifs et la reexecution de formulaires.
Mettre un timer comme çà, ca limite aussi l'activité, ce qui est positif pour la charge du serveur :D


---------------
MZP est de retour
Reply

Marsh Posté le 08-12-2005 à 12:52:49    

cinocks a écrit :

Ca permet d'eviter les retour arriere intempestifs et la reexecution de formulaires.
Mettre un timer comme çà, ca limite aussi l'activité, ce qui est positif pour la charge du serveur :D


 
Euh, pas d'accord pour les retours en arrière. Si je fais un retour en arrière sur hfr après avoir posté, je retourne sur le message qui me dis que je viens de poster, sur mon forum, tu retournes au message avant d'avoir posté si tu as poster dans la zone rapide ou tu retournes au formulaire de réponse autrement.
 
Quant à la charge serveur, envoyer une page, aussi petite soit-elle, juste pour nous dire qu'on va être redirigé, je ne suis pas sûr que ça soit super bénéfique pour la bande passante.
 
Enfin bon, si elle est là, il doit bien y avoir une raison, mais je ne la vois pas.
 
Edit : Correction, après test, c'est kifkif chez HFR ou sur mon forum niveau retour en arrière.

Message cité 1 fois
Message édité par The-Shadow le 08-12-2005 à 12:53:58
Reply

Marsh Posté le 08-12-2005 à 14:43:31    

The-Shadow a écrit :

Euh, pas d'accord pour les retours en arrière. Si je fais un retour en arrière sur hfr après avoir posté, je retourne sur le message qui me dis que je viens de poster, sur mon forum, tu retournes au message avant d'avoir posté si tu as poster dans la zone rapide ou tu retournes au formulaire de réponse autrement.
 
Quant à la charge serveur, envoyer une page, aussi petite soit-elle, juste pour nous dire qu'on va être redirigé, je ne suis pas sûr que ça soit super bénéfique pour la bande passante.
 
Enfin bon, si elle est là, il doit bien y avoir une raison, mais je ne la vois pas.
 
Edit : Correction, après test, c'est kifkif chez HFR ou sur mon forum niveau retour en arrière.


Il faut pas abuser quand même. Plus la bande passante s'elargie, plus les machines sont puissante, les coûts de connexion se réduise mais il y a plus d'internaute "potentiel". Alors c'est pas la petite page précisant qu'il va y avoir une redirection qui fait que ça ne sera pas bénéfique pour le serveur :D . Si les serveurs avaient des sentiments et pouvaient parler ils insulteraient plus les developpeurs qui codent comme des porcs  [:ciler] que la petite page de redirection de quelques dizaines d'octets.

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed