Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1516 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Temporiser un header("Location: ***");

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Temporiser un header("Location: ***");

n°1152467
momo194
Posté le 18-07-2005 à 13:27:40  profilanswer
 

Bonjour,
 
A la fin d'un de mes scripts je voudrais effectuer une temporisation(5 secondes) avant le refresh automatique de la page.
 
 
j'ai essayé
 
<?
ob_start();
[...] // PHP + HTML ~100 lignes
sleep(5);
header("Location: mapage.php" );
ob_end_flush;
?>
 
Mais sans succès, en effet, au lancement de mapage.php, la page tente de se charger(la barre de progression progresse), mais gèle sur la fin !
Un refresh par l'intermédiaire de META ou de javascript ne m'intéresse pas, car elle est moins discrète(barre de progression + petit clic).
 
Merci

mood
Publicité
Posté le 18-07-2005 à 13:27:40  profilanswer
 

n°1152470
afbilou
pouet your life
Posté le 18-07-2005 à 13:32:02  profilanswer
 

Impossible en PHP : meta ou javascript pas d'autre moyen.

n°1152486
stb
Posté le 18-07-2005 à 14:04:14  profilanswer
 

header("Refresh CONTENT=\"10; URL=http://xxx/\"" );

n°1152496
afbilou
pouet your life
Posté le 18-07-2005 à 14:17:09  profilanswer
 

huhu je connaissais pas :)
La bonne syntax :

Code :
  1. <?php header("Refresh: 10; URL=http://site" ); ?>
  2. Code HTML ...

n°1152561
momo194
Posté le 18-07-2005 à 14:57:04  profilanswer
 

OK, Merci. Ca marche !

n°1152571
The-Shadow
Développeur
T'as été voir dans ton profil?
Posté le 18-07-2005 à 15:03:31  profilanswer
 

Si je peux me permettre une question, c'est quoi l'intérêt ?
Un timer en Meta avec un message de validation par exemple, pourquoi pas, mais l'intérêt de bloquer l'envoie d'un header, à part faire patienter inutilement le visiteur, je vois pas.
Mais j'ai peut-être oublier un cas de figure où ça pourrait servir, c'est pour ça que je demande. :D

n°1152592
gooopil
pfiew
Posté le 18-07-2005 à 15:23:00  profilanswer
 

stb a écrit :

header("Refresh CONTENT=\"10; URL=http://xxx/\"" );


 
Ca revient pas strictement au meme que d'envoyer directement un <meta> pour reafficher la page par hasard???

n°1152593
FlorentG
Unité de Masse
Posté le 18-07-2005 à 15:23:46  profilanswer
 

meta = caca :o Vaut mieux faire ça côté serveur :o

n°1152596
FlorentG
Unité de Masse
Posté le 18-07-2005 à 15:24:20  profilanswer
 

Dans la mesure du possible, utiliser de vrais redirection HTTP (via header), qu'une solution bâtarde qui coupe genre bouton précédent avec un meta à la noix

n°1152607
gooopil
pfiew
Posté le 18-07-2005 à 15:28:50  profilanswer
 

Florent, tu peux m'expliquer l'avantage de l'un sur l'autre parceque ca a l'air d'obtenir strictement le meme résultat ?  
NB: Je te crois hein, c'est pas ca le problème, j'aime juste comprendre les trucs plutot que de faire les trucs betement :)

mood
Publicité
Posté le 18-07-2005 à 15:28:50  profilanswer
 

n°1152612
FlorentG
Unité de Masse
Posté le 18-07-2005 à 15:32:28  profilanswer
 

Ben déjà, je vois pas l'interêt d'envoyer une page complète avec un pauvre meta. Envoyer une redirection HTTP est plus mieux. Ensuite, de manière générale, les meta cassent le bouton précédent : tu va en arrière, et cash t'es redirigé -> aïe aïe aïe. Le meta est plus une solution bricolage qu'autre chose :/ Moreover, le meta sert lorsqu'on n'a pas de serveur (genre le fichier est ouvert à partir du disque-dur. C'est à ça que servent les meta http-equiv, de manière générale. Pas pour faire des redirections ou autre. C'est le boulot du serveur)

n°1152616
gooopil
pfiew
Posté le 18-07-2005 à 15:34:30  profilanswer
 

That makes sense to me  :jap:

n°1152634
The-Shadow
Développeur
T'as été voir dans ton profil?
Posté le 18-07-2005 à 15:44:08  profilanswer
 


Tu fais comment une redirection sur une page web sans Meta et sans JS ? [:at war with emo]

n°1152635
FlorentG
Unité de Masse
Posté le 18-07-2005 à 15:44:32  profilanswer
 

header();

:o

n°1152636
FlorentG
Unité de Masse
Posté le 18-07-2005 à 15:45:09  profilanswer
 

Les redirections JS ou meta sont le plus souvent un signe d'une mauvaise conception de la chose ;)

n°1152638
afbilou
pouet your life
Posté le 18-07-2005 à 15:45:46  profilanswer
 

La solution est donnée des le 3eme post quand meme ...

n°1152640
FlorentG
Unité de Masse
Posté le 18-07-2005 à 15:46:50  profilanswer
 

Accessoirement, oui :D

n°1152660
bakastef
Posté le 18-07-2005 à 15:55:47  profilanswer
 

Je propose une solution alternative.. enfin a debattre.. pourquoi pas faire:

Code :
  1. code
  2.   code
  3.    code...
  4. flush();
  5. sleep();
  6. header();


---------------
triste époque ou il est plus difficile de casser un préjugé qu'un atome(A.Einstein)
n°1152668
The-Shadow
Développeur
T'as été voir dans ton profil?
Posté le 18-07-2005 à 16:01:09  profilanswer
 

test

n°1152671
The-Shadow
Développeur
T'as été voir dans ton profil?
Posté le 18-07-2005 à 16:01:51  profilanswer
 

FlorentG a écrit :

Les redirections JS ou meta sont le plus souvent un signe d'une mauvaise conception de la chose ;)


Bah si on prend par exemple le forum MD.
Quand tu postes un message, il y a un message qui te dit que ton post a bien été pris en compte et zou. A ce moment là, il y a redirection par Meta, comment faire autrement ?

n°1152675
afbilou
pouet your life
Posté le 18-07-2005 à 16:03:37  profilanswer
 

The-Shadow a écrit :

Bah si on prend par exemple le forum MD.
Quand tu postes un message, il y a un message qui te dit que ton post a bien été pris en compte et zou. A ce moment là, il y a redirection par Meta, comment faire autrement ?


Code :
  1. <?php header("Refresh: 10; URL=http://site" ); ?>
  2. <html>
  3. ...
  4. ton post a bien été pris en compte et zou
  5. ...
  6. </html>


Message édité par afbilou le 18-07-2005 à 16:03:51
n°1152679
FlorentG
Unité de Masse
Posté le 18-07-2005 à 16:06:05  profilanswer
 

C'est le genre de redirection à virer d'urgence. Celle sur forum auto est beaucoup mieux. T'arrive sur une page avec des liens, genre voir le post, aller dans la section, retourner à l'index, etc. Comme ça tu peux choisir ce que tu veux faire.
 
Aussi, tant qu'on ne peut pas désactiver ce genre de truc, il ne faut pas les utiliser, afin d'être conforme avec les règles d'accessibilité :

Citation :

Until user agents provide the ability to stop the refresh, do not create periodically auto-refreshing pages. [Priority 2]
    For example, in HTML, don't cause pages to auto-refresh with "HTTP-EQUIV=refresh" until user agents allow users to turn off the feature.


n°1152684
The-Shadow
Développeur
T'as été voir dans ton profil?
Posté le 18-07-2005 à 16:08:40  profilanswer
 

afbilou a écrit :

Code :
  1. <?php header("Refresh: 10; URL=http://site" ); ?>
  2. <html>
  3. ...
  4. ton post a bien été pris en compte et zou
  5. ...
  6. </html>



Ha okey, je n'avais pas bien compris le fonctionnement du header PHP à retardement. :jap:
Effectivement, dans ce cas là.

n°1152728
antp
Super Administrateur
Champion des excuses bidons
Posté le 18-07-2005 à 16:45:35  profilanswer
 

FlorentG a écrit :

C'est le genre de redirection à virer d'urgence. Celle sur forum auto est beaucoup mieux. T'arrive sur une page avec des liens, genre voir le post, aller dans la section, retourner à l'index, etc. Comme ça tu peux choisir ce que tu veux faire.


 
Ouais mais c'est un peu lourd de devoir cliquer à chaque coup quand même :/ Puis sur forum-auto c'est sémantiquement et ergonomiquement complètement nul : "cliquez ici pour aller sur votre message" avec juste le "ici" qui est cliquable, au lieu d'un gros lien "Aller sur votre message" [:kiki]


Message édité par antp le 18-07-2005 à 16:46:00

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°1152751
FlorentG
Unité de Masse
Posté le 18-07-2005 à 17:06:25  profilanswer
 

Ha, dès que je parle de l'écran de confirmation de FA, y'a antp qui arrive pour signaler les "cliquer ici". Et là, je lui répond que c'est effectivement à chier de ce côté là :D Mais bon comme dit [:spamafote] C'est un truc qui devrait être configurable dans les options :  

  • Rediriger vers le post
  • Afficher un écran de choix

n°1152798
antp
Super Administrateur
Champion des excuses bidons
Posté le 18-07-2005 à 17:44:04  profilanswer
 

FlorentG a écrit :

Ha, dès que je parle de l'écran de confirmation de FA, y'a antp qui arrive pour signaler les "cliquer ici".


 
:D


Message édité par antp le 18-07-2005 à 17:44:21

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°1152803
FlorentG
Unité de Masse
Posté le 18-07-2005 à 17:47:40  profilanswer
 

Je soupçonne même un bot qui recherche sur "FlorentG forum auto redirection" :D

n°1208207
hdh
suis newbie mais je me soigne
Posté le 27-09-2005 à 00:13:15  profilanswer
 

bakastef a écrit :

Je propose une solution alternative.. enfin a debattre.. pourquoi pas faire:

Code :
  1. code
  2.   code
  3.    code...
  4. flush();
  5. sleep();
  6. header();



Hello,  
j'ai le mm style de problème : je voudrais temporiser l'execution du script !
mais pas au niveau client mais serveur.
Je m'explique : je viens de me faire une galerie de photos, les gens peuvent selectionner les photos avec une checkbox. En validant  ils sont redirigés vers une page de téléchargement... et là catastrophe : le serveur (Free.fr) n'a pas le temps de générer le zip... ("Allowed memory size of 8388608 bytes exhausted (tried to allocate 32460 bytes)" ) j'ai dc tenter de faire des paquets plûs petits (10 photos)...
Malheureusement ca ne marche pas non plus.. (les premiers paquets sont ok...mais les suivants non)
=> je voudrais donc donner plus de temps au serveur pour qu'il puisse zipper sans surcharge...  
vous auriez une idée ???  
ou d'autres pistes ?? du style iframe à relaoder ? d'avance merci pour votre aide !!
 
un exemple ici http://7rla2.free.fr/index.php?photo_de=pouet
 
au plaisir de vous lire,  
 
H

n°1208241
shakpana
des fois, j'me demande ...
Posté le 27-09-2005 à 01:43:34  profilanswer
 

Sympa, le panier à photo ...
Mais je suis plus que perplexe sur le plan flush(), sleep() et wake_up_tomorrow_morning_and_eat_your_breakfast() :?
je vois pas le rapport, et surtout ça marche pas comme attendu, sinon allez on pête un câble, on déraisonne, et on va forké l'execution du script et ... oupss désolé ... pourquoi penses-tu avoir un prob. de temporisation, moi je vois ça comme un prob. d'alloc. mémoire, alors que tu alloues maintenant où plus tard, tu alloueras toujours trop ?!
tu le fais avec quoi ton .zip ?

n°1208337
omega2
Posté le 27-09-2005 à 09:29:33  profilanswer
 

hdh a écrit :

et là catastrophe : le serveur (Free.fr) n'a pas le temps de générer le zip... ("Allowed memory size of 8388608 bytes exhausted (tried to allocate 32460 bytes)" )

traduction du message d'erreur :
Limitation de l'espace mémoire de 8388608 octets atteint (impossible d'alouer 32460 octets suplémentaires)
 
Un probléme de durée? [:atlantis] T'es sur? [:atlantis]

n°1208339
FlorentG
Unité de Masse
Posté le 27-09-2005 à 09:35:01  profilanswer
 

Ouais, c'est juste la limitation de la mémoire, qui est à 8 Mo par défaut. Donc si t'essayes de faire un .zip qui dépasse 8 Mo, forcément ça foire...

n°1208347
omega2
Posté le 27-09-2005 à 09:47:37  profilanswer
 

ou plusieurs zip en oubliant de libérer les variables inutilisés (vive unset pour ce genre de truc :) )

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Temporiser un header("Location: ***");

 

Sujets relatifs
Pb code js, top.location marche pas....menu horizontal dans un header.
Javascript et header de page htmlheader php ou htaccess??
probleme de header!!!Comment temporiser un programme?
Header() et telechargement automatiqueAutre solution que header()?
header[.Net] Alignement Header d'un DataGrid
Plus de sujets relatifs à : Temporiser un header("Location: ***");


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR