Précédent   Forum des professionnels en informatique > PHP > Langage > Sessions
Sessions Forum d'entraide sur les sessions avec PHP. Avant de poster -> FAQ sessions, Cours sessions et Sources sécurité
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 20/06/2006, 15h47   #1
Membre éclairé
 
Inscription : juillet 2005
Messages : 1 221
Détails du profil
Informations forums :
Inscription : juillet 2005
Messages : 1 221
Points : 398
Points : 398
Par défaut [Cookies] session_start() s'entend mal avec set_cookie : headers already sent

BOnjour,

J'ai un petit problème sur mon site, je n'autorise les sessions que par cookie, en faisant comme suit :
Code :
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 :
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 :
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 :
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 :
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 ?
__________________
C'est pas parce que j'ai tort que vous avez raison.
psychoBob est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/06/2006, 13h30   #2
Rédacteur
 
Avatar de wamania
 
Développeur Web
Inscription : juillet 2003
Messages : 676
Détails du profil
Informations personnelles :
Âge : 30
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : juillet 2003
Messages : 676
Points : 678
Points : 678
Code :
1
2
3
4
5
if(isset($_COOKIE['testCookieAcceptes']))
{echo $_COOKIE['testCookieAcceptes'];}
else
{
echo 'ACCEPTES LES COOKIES ';}
t'envoie du HTML avant un session_start()...
typique comme erreur
__________________
Articles sur developpez.com
- Gestion des exceptions avec PHP5
- Chiffrement et hash en PHP contre l'attaque Man in the middle
- Aedituus - Espace membre sécurisé en PHP5

Lithium : ORM ActiveRecord PHP5 extrêmement léger
wamania est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/06/2006, 14h55   #3
Membre éclairé
 
Inscription : juillet 2005
Messages : 1 221
Détails du profil
Informations forums :
Inscription : juillet 2005
Messages : 1 221
Points : 398
Points : 398
Salut Wamania,

En fait le problème venait de çela, voici exactement mon code :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php 
if(!isset( $_COOKIE[ session_name() ] ))
setcookie
(
"testCookieAcceptes",
"Oui"
);
?>
========ESPACE VIDE ENTRE DEUX ENTREES PHP ===========
<?php
if( isset( $_COOKIE[ session_name() ] ) )
{
    session_start();
;}
?>
__________________
C'est pas parce que j'ai tort que vous avez raison.
psychoBob est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/06/2006, 14h59   #4
Rédacteur
 
Avatar de wamania
 
Développeur Web
Inscription : juillet 2003
Messages : 676
Détails du profil
Informations personnelles :
Âge : 30
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : juillet 2003
Messages : 676
Points : 678
Points : 678
__________________
Articles sur developpez.com
- Gestion des exceptions avec PHP5
- Chiffrement et hash en PHP contre l'attaque Man in the middle
- Aedituus - Espace membre sécurisé en PHP5

Lithium : ORM ActiveRecord PHP5 extrêmement léger
wamania est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h10.


 
 
 
 
Partenaires

Hébergement Web