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 02/02/2008, 14h45   #1
Invité de passage
 
Inscription : mai 2005
Messages : 36
Détails du profil
Informations forums :
Inscription : mai 2005
Messages : 36
Points : 4
Points : 4
Par défaut [Sécurité] Comportement étrange de sessions

Bonjour à tous ^^

Voilà j'avais une appli php qui tournait très bien jusqu'à ce midi, elle présente un problème de session... Bref j'ai fait un test tout bête :

fichier index.php
Code :
1
2
3
<?php session_start();
echo $_SESSION['test'];
include ('securite.php'); ?>
fichier securite.php
Code :
1
2
<?php $_SESSION['test'] = "OK"; ?>
<?php echo $_SESSION['test']; ?>
Lorsque je vais sur la page index.php j'affiche $_SESSION['test'] qui est vide, j'intègre la page sécurité qui me place OK dans la variable test en session et me l'affiche. Résultat de la page : OK

Lorsque je vais une seconde fois sur la page index, et bien je n'ai pas mon premier echo, donc comme pour la première fois je n'ai qu'un OK et non deux.

Plus étrange, si j'ajoute au fichier securite.php un
et que je vais dessus, OK s'affiche... Je retourne sur index.php et là j'ai bien mes 2 OK qui s'affichent.

Donc visiblement il n'arrive pas à placer une variable en session via l'include, je n'ai jamais eu ce soucis avant, donc est-ce moi qui délire ou est-ce un comportement normal, dans ce cas pourquoi jusqu'à ce midi cela fonctionnait ? ^^

A noter que j'ai testé sur 1and1, Free, et serveur dédié, comportement identique...

Une idée ?

PS : J'ai eu une soirée bien arrosée hier soir, donc là je vais me coucher, cela fait 2 heures que je fais des tests et que je n'arrive à rien...
rpgmax est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/02/2008, 17h07   #2
Membre expérimenté
 
Inscription : août 2005
Messages : 515
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 515
Points : 557
Points : 557
Bonjour,
tout ceci fonctionne parfaitement chez moi (PHP 5.2.5).

Code index.php :
1
2
3
4
5
6
7
8
9
<?php
 
  session_start();
 
  if (isset($_SESSION['test'])) echo $_SESSION['test'];
 
  include('inc-var.php');  
 
?>

Code inc-var.php :
1
2
3
4
5
6
7
<?php
 
  if (!isset($_SESSION['test'])) $_SESSION['test'] = 'OK';
 
  echo $_SESSION['test'];
 
?>

Le premier accès à index.php affiche "OK" et toutes les autres actualisations affichent "OKOK".

Cordialement,
DaRiaN.
DaRiaN est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/02/2008, 17h14   #3
Invité de passage
 
Inscription : mai 2005
Messages : 36
Détails du profil
Informations forums :
Inscription : mai 2005
Messages : 36
Points : 4
Points : 4
Hé hé merci pour ta réponse mais cela ne marche pas enfin plus plutôt vu que cela fonctionnait avant... de mon côté.

J'ai copié/collé ton exemple (identique au mien avec verifs en plus) sur un compte FREE (php 4.4.3), sur un compte 1and1 (php 5.2.4).

Cela fonctionne cependant sur ma dedibox en 5.2.5 !

Une idée ?

Edit : A noter que sur Free et 1and1 j'ai ceci :

Code :
1
2
3
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /xxx/index.php:1) in /xxx/index.php on line 1
 
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /xxx/index.php:1) in /xxx/index.php on line 1
rpgmax est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/02/2008, 17h24   #4
Invité de passage
 
Inscription : mai 2005
Messages : 36
Détails du profil
Informations forums :
Inscription : mai 2005
Messages : 36
Points : 4
Points : 4
Eurêka j'ai trouvé, visiblement c'est Dreamweaver qui me balance un caractère "invisible en début de fichier", si je prends notepad++ et que j'entre mon code cela marche niquel, donc de là à savoir pourquoi d'un coup il déconne...

Bref logiquement c'est bon, si je trouve pour Dreamweaver je posterai ici

Merci de ton aide DaRiaN

Edit : Voilà c'est à cause de l'encodage UTF-8 et de ceci :
http://www.unicode.org/faq/utf_bom.html#BOM

placé en début de fichier, cependant c'est étrange que le problème soit apparu d'un coup !

Dans Dreamweaver il est possible dans les propriétés de la page de ne pas inclure ce BOM.

Tout est OK maintenant, bien content d'en être sorti, et au moins je me coucherai moins c#n ^^ (Pas comme cet apreme )
rpgmax 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 13h33.


 
 
 
 
Partenaires

Hébergement Web