Redirection mais affichage html avant [PHP?] - PHP - Programmation
Marsh Posté le 16-09-2003 à 21:16:48
ob_start();
echo 'Redirection en cours...';
header('Location: http://www.bidule.net/');
ob_end_flush();
Marsh Posté le 16-09-2003 à 22:54:49
t'est sur que ca marche parce que sur http://ch.php.net/manual/fr/function.ob-start.php c'est ecrit :
"ob_start() démarre la bufferisation de sortie. Tant qu'elle est enclenchée, aucune donnée, hormis les en-têtes, n'est envoyée au navigateur, mais temporairement mise en buffer."
et la c'est justement l'en tete qui est renvoyé... de plus j'ai oublié de preciser que mon script php qui est sur cette page renvoie un cookie.
Marsh Posté le 17-09-2003 à 00:57:51
Attention, un script PHP n'est pas sur une page (donc pas chez le client) mais génére une page qui sera envoyée au client... faut bien faire la distinction
Sinon, qui ose encore désactiver le JS ? 0,1% des internautes ? Tant pis pour eux... tu mets un lien sur ton message vers là où tu veux les rediriger comme tout le monde le fait...
Marsh Posté le 17-09-2003 à 08:06:36
007seb a écrit : Attention, un script PHP n'est pas sur une page (donc pas chez le client) mais génére une page qui sera envoyée au client... faut bien faire la distinction |
Ridicule... En quoi cela sert-il à quelque chose de faire des redirections en Javascript... C'est un procédé tout juste employé par des mecs qui code avec les pieds.
Et pour répondre à la question originale, c'est idiot d'afficher qqc AVANT la redirection. Tu peux parfaitement faire une page qui va s'auto-diriger ensuite grace à un META. C'est la solution la plus propre avec les headers (ce qui d'ailleurs revient pratiquement au même). Le javascript ne devrait JAMAIS être utilisé pour un cas comme celui-ci.
Enfin concernant la désactivation du JS, c'est pas 0.1%, mais 10% et ce n'est pas négligeable. Et on ira de plus en plus dans le sens d'une désactivatio, car maintenant, les pubs ne sont plus toujours sous la forme de popup mais directement insérées dans la page (ex : multimerde).
Marsh Posté le 17-09-2003 à 13:59:31
Citation : Et pour répondre à la question originale, c'est idiot d'afficher qqc AVANT la redirection. Tu peux parfaitement faire une page qui va s'auto-diriger ensuite grace à un META]. C'est la solution la plus propre avec les headers (ce qui d'ailleurs revient pratiquement au même). Le javascript ne devrait JAMAIS être utilisé pour un cas comme celui-ci. |
Une redirection grace à un meta : c'est ce que je pensais faire, mais j'ai lu sur le net que c'est pas tres bien, je sais pas pourquoi d'ailleur...
c'est vrai que c'est pas bien ? ou c'est justement la solution parfaite à mon probleme ?
Marsh Posté le 17-09-2003 à 15:33:40
Big-Foot a écrit :
|
Je ne vois pas pourquoi cela poserait un problème. A mon avis, c'est bien souvent la meilleure solution.
Marsh Posté le 17-09-2003 à 15:35:50
Hermes le Messager a écrit : |
Du côté des moteurs de recherche... ils ignoreront une redirection en javascript mais détecteront un meta refresh
Marsh Posté le 17-09-2003 à 15:54:48
fastclemmy a écrit : |
Un header également hein... Les moteurs ne lisent pas le code PHP des pages, mais seulement le résultat, et jusqu'à preuve du contraire, un header génère un META qui va rediriger la page.
Regarde donc ce que génère le header de ce forum quand tu postes une réponse. Un header ou un "meta http-equiv="Refresh"..." c'est pareil hein...
Marsh Posté le 17-09-2003 à 19:31:06
Hermes le Messager a écrit : |
Même résultat ne veut pas dire même action.
Un META est du texte envoyé dans la page html ou le fichier.
Un header est une info envoyé en dehors du fichier ou de la page html (avant le fichier plus précisément). C'est envoyé dans l'entête du flux d'où le nom d'header.
De plus, un header n'écrit rien de plus dans le code de la page. Si ici t'as une balise META refresh, c'est que ca a été envoyé tel quel dans le code.
Marsh Posté le 17-09-2003 à 19:56:31
donc la redirection du header php et la meta c'est pas tout a fait la meme chose ok.
Mais est ce que je peu mettre un temps avant la redirection dans le header, comme dans le meta html ? ce qui me permetrait d'afficher qq chose avant cette redirection.
Marsh Posté le 17-09-2003 à 20:32:39
007seb a écrit : Attention, un script PHP n'est pas sur une page (donc pas chez le client) mais génére une page qui sera envoyée au client... faut bien faire la distinction |
86% sur JS 1.2
13% JS désactivé
source : http://www.w3schools.com/browsers/browsers_stats.asp
Marsh Posté le 18-09-2003 à 05:24:56
Citation :
Du côté des moteurs de recherche... ils ignoreront une redirection en javascript mais détecteront un meta refresh |
Il y a aussi le fait que le visiteur, s'il veut pour une raison X ou Y retourner a la page d'avant en cliquant sur "back" va pas arreter de se faire renvoyer sur la page qu'il essaye de quitter.
Il va etre oblige de cliquer comme un malade sur sa souris pour repasser le barrage du meta refresh (a moins que le refresh te laisse le temps de cliquer tranquille ce qui n'est pas souvent le cas). Le META refresh n'est pas une redirection "transparente".
Vous allez me dire que je chipote, mais ca m'arrive souvent et c'est grave lourd !
A l'oppose, la redirection utilisee lorsque tu postes un message sur ce forum est dite "transparente" et si tu cliques sur retour tu tombes sur la page d'edition directement.
beaucoup plus classe, beaucoup mieux !
Marsh Posté le 19-09-2003 à 17:51:12
effisk a écrit :
|
Qu'est ce que tu appelle une redirection transparente ? redirection php ? js ??
Marsh Posté le 21-09-2003 à 16:17:02
Code :
|
ou
Code :
|
Marsh Posté le 21-09-2003 à 21:17:58
NemoHP a écrit :
|
Attention, cerrtain navigateur considérent une balise meta refresh avec une tempo réglé à 0 comme "pas de refresh" alors que d'autres le comprènent bien comme un changement de page immédiat.
le mieux, c'est de mettre la temporisation à 1 seconde, c'est très court et tous les navigateurs font bien le rafraichissement.
Marsh Posté le 21-09-2003 à 21:21:06
Hermes le Messager a écrit : et jusqu'à preuve du contraire, un header génère un META qui va rediriger la page. |
il me semblait plutôt que ça générait un code HTTP 302 ou quelque chose du genre
Marsh Posté le 21-04-2004 à 16:25:58
chui confronté o même probleme, et j'aimerais bien avoir vos conclusions siouplé!
Le <META> me parait intéressant car surtout très simple à mettre en oeuvre , apres avec les histoires de référencement (par des moteurs de recherche) ca peut changer la donne (et en quoi ca consisterait concretement )
MICI D'AVANCE
PS: g mon 'index.php'
<body> |
qui balance vers 'redirect.php'
<head> |
Le problème c que au bout du temps écoulé $_POST['tempo'] ca "veut" rediriger (mon navigateur réagit comme s'il changeait de page) mais ca reste sur 'redirect.php'...
RE MICI
Marsh Posté le 21-04-2004 à 18:47:19
<META http-EQUIV="Refresh" CONTENT="0;url=index.php"> C'est ca la syntaxe correcte
et pas META http-EQUIV="Refresh" CONTENT="0" url="index.php">
Marsh Posté le 21-04-2004 à 21:54:28
antp a écrit : il me semblait plutôt que ça générait un code HTTP 302 ou quelque chose du genre |
Je viens de tester ça renvoie effectivement un code 302 et le champ Location qui va bien
Marsh Posté le 22-04-2004 à 10:11:56
ben moi j'utilise une compilation de ce qui a été dit ici
function doneAdmin($msg_done) { |
et sur done.php
<? |
Marsh Posté le 22-04-2004 à 12:32:19
Comme le dirait ce cher Columbo: voyez-vous, ya kekchoz qui m'chiffonne, m'sieur chacal...
Pkoi t'utilises la temporisation des données (sauf des entêtes), alors que ton header() n'envoie de base QUE un entête
Marsh Posté le 22-04-2004 à 15:58:28
Sinon
moi j'ai écrit ça moi a écrit : Le <META> me parait intéressant car surtout très simple à mettre en oeuvre , apres avec les histoires de référencement (par des moteurs de recherche) ca peut changer la donne (et en quoi ca consisterait concretement ) MICI D'AVANCE |
Marsh Posté le 16-09-2003 à 20:23:16
hello
Je voudrai faire une redirection apres l'execution d'un script PHP, mais sur cette page ou ce trouve cette redirection je voudrais afficher un message ou autre chose (du html quoi), un peu comme sur ce forum.
Avec le refresh HTML j'ai entendu que c'est deconseillé... c'est vrai ? pourquoi ?
Avec le JS je crois pas que ce soit une bonne idée car tt le monde ne l'active pas.
Avec le header php ca redirige tout de suite non ? ca n'affichrai donc pas de html avant... ou bien est ce qu'il y a un moyen ?