Session_start puis header Location

pols12 Messages postés 1143 Date d'inscription   Statut Membre Dernière intervention   -  
pols12 Messages postés 1143 Date d'inscription   Statut Membre Dernière intervention   -
Salut!
Je croyais que c'était impossible, mais j'ai découvert dans un script gratuit ceci:
<?php
session_start();
session_unset();
session_destroy();
header('Location:../index.php');
?>

Un script tout bête de déconnexion d'un espace membre.
Ainsi, il est possible de mettre un header(Location APRES un session_strart?
Ne sont-ils pas, comme un doctype, considéré comme des header http?

Donc:
Est-ce que mon wamp en local est trop tolérant?
Est-ce une nouveauté ou une ancienneté de PHP?
Est-ce que je me suis trompé, et donc que tant que du html n'est aps généré, on peut mettre un header après un session_start?
Ou est-ce le fait que la session est détruite, donc le header n'est aps réellement envoyé?

La quelle de ces questions contient la réponse?
O est-ce tout autre chsoe, peut être?

Je vous remercie d'avance, et beaucoup, d'ailleur... =D
Pols12


4 réponses

Breub62 Messages postés 3452 Statut Membre 369
 
Le header ne peut pas être mis après le head... J'ai envie de dire logique...
0
pols12 Messages postés 1143 Date d'inscription   Statut Membre Dernière intervention   119
 
Salut le head, tru veux dire la balsie <head>?
Bien sur, même après le doctype, il ne peut pas! le header est une entête HTTP, si mes souvenirs sont bons, il doit se placer avant TOUT code html (même un espace).
Je croyais que session_sart était également un header, et donc qu'il falalit choisir entre les deux, qu'on ne pouvait aps mettre les deux.
Mais maintzant, je ne sais plus quoi penser, une aide svp?
Merci!
Pols12
0
Breub62 Messages postés 3452 Statut Membre 369
 
Tu ne peux pas placer de header après la balise head mais tu le peux après du code php(qui ne génère pas de html bien sûr)...
0
pols12 Messages postés 1143 Date d'inscription   Statut Membre Dernière intervention   119
 
Salut
Excuse moi, mais je cite:
Utiliser header() après session_start()

Q: Mais comment je fais alors pour faire une redirection avec header() si j'utilise session_start() avant? 

R: C'est impossible, en ce cas il faut choisir un moyen de faire une redirection, typiquement celà se fait en javascript, ou mieux: en html dans la balise meta refresh:

Source: la faq de ccm
https://www.commentcamarche.net/faq/1916-php-headers-already-sent-by
0