OVH Cloud OVH Cloud

Comment faire un headeer apres un session_start ?

3 réponses
Avatar
francois
bonjour a tous.

Dans mon site, j'ai besoin a un moment de renvoyer l'utilisateur vers une
autre page. j'utilise donc une commande header('Location: ' . $url);


Mais mon site a des sessions.... Et donc au debut de chaque page j'ai un
session start.

Comment faire un header('.... sur une page qui commence par un session_start
?

Merci à tous.

3 réponses

Avatar
Jedi121
francois a pensé très fort :
Dans mon site, j'ai besoin a un moment de renvoyer l'utilisateur vers une
autre page. j'utilise donc une commande header('Location: ' . $url);
Ce n'est pas bien, lire http://faqfclphp.free.fr/#rub2.11


Mais mon site a des sessions.... Et donc au debut de chaque page j'ai un
session start.

Comment faire un header('.... sur une page qui commence par un session_start


Tu peux faire un require() de la page visée.
<?php session_start();
require("mapage.php");
exit;
?>

Avatar
Etienne SOBOLE
Mais mon site a des sessions.... Et donc au debut de chaque page j'ai un
session start.


Hum. je voudrais pas dire de connerie, mais normalement, le session start
n'a pas d'impact sur le header...
le probleme est que tu dois deja envoyer des octets de la page.

Une solution est donc d'activer la bufferisation:
- soit en utilisant ob_start et compagnie.
- soit en confgurant le output_buffering du php.ini (que tu peux modifier
dynamiquement)
voir http://www.php.net/manual/fr/ref.outcontrol.php

Mais bon la meilleur solution est encore de faire ca proprement et de ne
rien envoyer vers la sortie standard tant que tu n'es pas sur que tu vas
devoir faire un header('location: ...");

Ps : il reste une dernière solution pour toi, c'est le javascript
t'envoie <script type='text/javascript'>window.location.href =
'mon_url.php';</script>

et normalement des que la page arrive dessus, hop. ca saute...
mais bon c'est quand meme pas tres propre.

Etienne

Avatar
John Gallet
Bonjour,

Dans mon site, j'ai besoin a un moment de renvoyer l'utilisateur vers une
autre page. j'utilise donc une commande header('Location: ' . $url);


http://faqfclphp.free.fr/#rub2.11

Mais mon site a des sessions.... Et donc au debut de chaque page j'ai un
session start.


Il n'est pas obligatoire d'utiliser les biscuits pour les sessions
natives php. Et il n'est pas obligatoire d'utiliser les sessions php
pour faire des sessions.

Comment faire un header('.... sur une page qui commence par un session_start
?
Ne pas le faire.


a++;
JG