BOnjour,

J'ai un petit problème sur mon site, je n'autorise les sessions que par cookie, en faisant comme suit :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 if( isset( $_COOKIE[ session_name() ] ) )
{
    session_start();
}
Cela ça fonctionne bien.

Mais si client refuse les cookies il ne peut pas franchir la page d'identification. Il convient donc de lui afficher un message.
Donc j'initialise un cookie dès la page d'accueil(qui inclut toutes les autres pages).

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
setcookie
(
"testCookieAcceptes",
"Oui"
);
Comme ça quand le gars arrive sur identification.php un script vérifie s'il accepte les cookies :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
if(isset($_COOKIE['testCookieAcceptes']))
{echo $_COOKIE['testCookieAcceptes'];}
else
{
echo 'ACCEPTES LES COOKIES ';}
Les messages s'affichent bien dans les deux cas.

Maintenant si le gars s'est bien connecté et retourne sur le site, ce qui veut donc dire qu'il accepte les cookies, j'obtiens l'erreur classique :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /home.2/site/www/index.php:10) in /home.2/site/www/index.php on line 13
Et donc dans la page index.php qui déclenche l'erreur nous avons cela (tout en haut, cela va sans dire) :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
if(!isset( $_COOKIE[ session_name() ] ))
setcookie
(
"testCookieAcceptes",
"Oui"
);
 
if( isset( $_COOKIE[ session_name() ] ) )
{
    session_start();
;}
Une idée ?