Redirection --> header
wazertyuiop
Messages postés
47
Statut
Membre
-
Groarh Messages postés 706 Statut Membre -
Groarh Messages postés 706 Statut Membre -
Bonjour,
je dois actuellement faire une redirection sur ma page php afin d'aller me rediriger sur une ancre , un souci intervient dès le premières lignes, je ne comprend pas pourquoi.
if (isset($_GET['redirigers']))
{
header('Location: #');
}
j'ai aussi essayer avec header('Location: mapage.php')
voici le message d'erreur
Warning: Cannot add header information - headers already sent by (output started at /home/sites/.../mapage.php:2) in /home/sites/...mapage.php on line 5
Voila si quelqu'un pourrait m'aider ca m'avancerai beaucoup
je dois actuellement faire une redirection sur ma page php afin d'aller me rediriger sur une ancre , un souci intervient dès le premières lignes, je ne comprend pas pourquoi.
if (isset($_GET['redirigers']))
{
header('Location: #');
}
j'ai aussi essayer avec header('Location: mapage.php')
voici le message d'erreur
Warning: Cannot add header information - headers already sent by (output started at /home/sites/.../mapage.php:2) in /home/sites/...mapage.php on line 5
Voila si quelqu'un pourrait m'aider ca m'avancerai beaucoup
3 réponses
Salut,
il y a du code HTML ou des sauts de ligne dans les 5 premières lignes de ton fichier, tu dois les retirer.
L'idéal serait que ton fichier commence directement par <? pour éviter ce genre de problème.
https://www.php.net/manual/fr/function.header.php
;)
il y a du code HTML ou des sauts de ligne dans les 5 premières lignes de ton fichier, tu dois les retirer.
L'idéal serait que ton fichier commence directement par <? pour éviter ce genre de problème.
https://www.php.net/manual/fr/function.header.php
;)
ok, aurais tu alors, une autre solution a me proposer ? car il dois forcément y avoir du code avant en fait j'ai un bouton submit quand je le click , il effectue des opérations et ensuite, une fois ces opérations effectuées je dois rediriger sur une ancre.
J'ai essayé plusieurs codes javascript trouvés sur le net, rien n'a marché.
En gros j'ai besoin de faire
if (isset(...))
{
req="select..."
....
--> redirection vers l'ancre
}
PS: il n'y avait aucun saut de ligne ce n'était pas la cause du problème ( ce n'est pas le premier site internet que je créer)
J'ai essayé plusieurs codes javascript trouvés sur le net, rien n'a marché.
En gros j'ai besoin de faire
if (isset(...))
{
req="select..."
....
--> redirection vers l'ancre
}
PS: il n'y avait aucun saut de ligne ce n'était pas la cause du problème ( ce n'est pas le premier site internet que je créer)
Re,
pour clarifier les choses, voyons la chronologie entière du chargement d'une page PHP :
1- le navigateur émet une requête HTTP vers ton serveur (après un clic sur un lien, une soumission de formulaire, ou autre). Ce faisant, il ouvre une connexion HTTP entre le serveur et lui.
2- Le serveur trouve la page demandée (si tout se passe bien), et la passe à son interpréteur PHP. Il prépare également les en-têtes HTTP à envoyer par défaut (type MIME, encodage, etc.). C'est à ce moment que tu peux rajouter des en-têtes avec la fonction header.
3- Dès que l'interpréteur PHP arrive à un moment où il doit envoyer du code HTML vers le navigateur, il envoie tous les en-têtes de la page en utilisant la connexion qui a été ouverte par le navigateur, puis envoie le code HTML. À partir de ce moment, il n'est plus possible de rajouter des en-têtes.
4- Une fois que la dernière donnée a été envoyée, la connexion HTTP est fermée, et l'interpréteur PHP s'arrête.
Il y a une solution assez simple à ton problème : rajoute l'ancre dans l'attribut action de ton formulaire. Si tu génères ton formulaire avec PHP, tu peux choisir la valeur en fonction de ton « $_GET['redirigers'] ».
;)
pour clarifier les choses, voyons la chronologie entière du chargement d'une page PHP :
1- le navigateur émet une requête HTTP vers ton serveur (après un clic sur un lien, une soumission de formulaire, ou autre). Ce faisant, il ouvre une connexion HTTP entre le serveur et lui.
2- Le serveur trouve la page demandée (si tout se passe bien), et la passe à son interpréteur PHP. Il prépare également les en-têtes HTTP à envoyer par défaut (type MIME, encodage, etc.). C'est à ce moment que tu peux rajouter des en-têtes avec la fonction header.
3- Dès que l'interpréteur PHP arrive à un moment où il doit envoyer du code HTML vers le navigateur, il envoie tous les en-têtes de la page en utilisant la connexion qui a été ouverte par le navigateur, puis envoie le code HTML. À partir de ce moment, il n'est plus possible de rajouter des en-têtes.
4- Une fois que la dernière donnée a été envoyée, la connexion HTTP est fermée, et l'interpréteur PHP s'arrête.
Il y a une solution assez simple à ton problème : rajoute l'ancre dans l'attribut action de ton formulaire. Si tu génères ton formulaire avec PHP, tu peux choisir la valeur en fonction de ton « $_GET['redirigers'] ».
;)