Temporiser un header("Location: ***"); - PHP - Programmation
Marsh Posté le 18-07-2005 à 13:32:02
Impossible en PHP : meta ou javascript pas d'autre moyen.
Marsh Posté le 18-07-2005 à 14:17:09
huhu je connaissais pas
La bonne syntax :
Code :
|
Marsh Posté le 18-07-2005 à 15:03:31
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.
Marsh Posté le 18-07-2005 à 15:23:00
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???
Marsh Posté le 18-07-2005 à 15:24:20
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
Marsh Posté le 18-07-2005 à 15:28:50
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
Marsh Posté le 18-07-2005 à 15:32:28
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)
Marsh Posté le 18-07-2005 à 15:44:08
FlorentG a écrit : meta = caca |
Tu fais comment une redirection sur une page web sans Meta et sans JS ?
Marsh Posté le 18-07-2005 à 15:45:09
Les redirections JS ou meta sont le plus souvent un signe d'une mauvaise conception de la chose
Marsh Posté le 18-07-2005 à 15:55:47
Je propose une solution alternative.. enfin a debattre.. pourquoi pas faire:
Code :
|
Marsh Posté le 18-07-2005 à 16:01:51
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 ?
Marsh Posté le 18-07-2005 à 16:03:37
The-Shadow a écrit : Bah si on prend par exemple le forum MD. |
Code :
|
Marsh Posté le 18-07-2005 à 16:06:05
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] |
Marsh Posté le 18-07-2005 à 16:08:40
afbilou a écrit :
|
Ha okey, je n'avais pas bien compris le fonctionnement du header PHP à retardement.
Effectivement, dans ce cas là.
Marsh Posté le 18-07-2005 à 16:45:35
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"
Marsh Posté le 18-07-2005 à 17:06:25
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à Mais bon comme dit C'est un truc qui devrait être configurable dans les options :
Marsh Posté le 18-07-2005 à 17:44:04
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". |
Marsh Posté le 18-07-2005 à 17:47:40
Je soupçonne même un bot qui recherche sur "FlorentG forum auto redirection"
Marsh Posté le 27-09-2005 à 00:13:15
bakastef a écrit : Je propose une solution alternative.. enfin a debattre.. pourquoi pas faire:
|
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
Marsh Posté le 27-09-2005 à 01:43:34
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 ?
Marsh Posté le 27-09-2005 à 09:29:33
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? T'es sur?
Marsh Posté le 27-09-2005 à 09:35:01
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...
Marsh Posté le 27-09-2005 à 09:47:37
ou plusieurs zip en oubliant de libérer les variables inutilisés (vive unset pour ce genre de truc )
Marsh Posté le 18-07-2005 à 13:27:40
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