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 05/01/2007, 10h50   #1
Invité de passage
 
Inscription : septembre 2005
Messages : 15
Détails du profil
Informations forums :
Inscription : septembre 2005
Messages : 15
Points : 3
Points : 3
Par défaut [Cookies] Session dans un iframe sur ie7

Bonjour,

J'ai un questionnaire en PHP composé de 3 pages. A chaque passage de page je récupère les informations dans une session. Une fois tous les champs correctement renseignés, j'enregistre le tout dans une base.

Tout marche très bien sur IE6, IE7 et Firefox.

Lorsque je met les pages de ce questionnaire dans un iframe, sur le serveur où se trouve également la base de donnée, tout marche également très bien sur IE6, IE7 et Firefox.

Le problème c'est que si j'utilise la même méthode de l'iframe sur un serveur distant, ça marche sur Firefox et IE6, mais plus sur IE7. En effet, dans ce cas, je rencontre un problème de session.

Ma session est bien déclarée par session_start(), mais aucune variable de session ne s'enregistre.

J'ai essayé sur différents serveurs, et j'ai toujours le meme problème.
Y'a t-il un problème avec les sessions dans un iframe avec IE7 sur un serveur distant ?

Merci d'avance pour votre aide.

Funewik
funewik est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2007, 11h42   #2
Invité de passage
 
Inscription : septembre 2005
Messages : 15
Détails du profil
Informations forums :
Inscription : septembre 2005
Messages : 15
Points : 3
Points : 3
Apparement le problème vient du fait qu'IE7 ne garde pas le session_id. Si j'actualise ma page, le session_id de la page dans l'iframe change à chaque fois.

Comment faire pour toujours conserver le même?

Merci d'avance.
funewik est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/01/2007, 11h57   #3
Invité de passage
 
Inscription : juin 2005
Messages : 13
Détails du profil
Informations forums :
Inscription : juin 2005
Messages : 13
Points : 3
Points : 3
Salut !

j'ai exactemment le même problème, as tu trouvé une solution depuis ?

j'ai remarqué que si on baisse le niveau de confidentialité de ie7, ça passe...
seulemment ce n'est pas une solution ...
celerius est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/01/2007, 13h55   #4
Invité de passage
 
Inscription : juin 2005
Messages : 13
Détails du profil
Informations forums :
Inscription : juin 2005
Messages : 13
Points : 3
Points : 3
le session_id est passé dans un cookie, les paramètres de confidentialité de ie7 par default (moyenne) bloque les cookies pour les cas suivants:

- bloque les cookies tiers qui n'ont pas de stratégie de confidentialité compacte


- bloque les cookies tiers qui enregistrent des informations pouvant être utilisées pour vous contacter sans votre consentement explicite

- restreint les cookies internes qui enregistrent des informations pouvant être utilisées pour vous contacter sans votre consentemment implicite

mon raisonnement:
En quoi le session_id est une information pouvant être utilisée pour me contacter ? Je pense évidemment que ça ne peut pas venir de là... donc par déduction seule le 1er point est possible...
Du coup:
=> Qu'est ce qu'une stratégie de confidentialité compacte?
=> Comment en définir une ?


Edit: Suite de mes recherches

Afin de créer la stratégie de confidentialité il faut créer un fichier xml p3p ... je vous laisse faire des recherches pour plus d'info ...

pour résoudre le problème rapidemment:

creer un fichier p3p.xml et inclure ceci dedans:
Code :
1
2
3
4
5
6
7
8
9
10
 
<?xml version="1.0" encoding="UTF-8" ?>
<META xmlns="http://www.w3.org/2000/12/P3Pv1">
<POLICY-REFERENCES>
   <POLICY-REF about="/w3c/policy.xml">
     <INCLUDE>/*</INCLUDE>
     <COOKIE-INCLUDE>* * *</COOKIE-INCLUDE>      
   </POLICY-REF>
</POLICY-REFERENCES>
</META>
puis dans inclure dans vos fichiers:
Code :
header("P3P: policyref=\"http://mondomaine/chemin/p3p.xml\",CP=\"NON DSP COR CURa PSA PSD OUR BUS NAV STA\"");
celerius est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/05/2008, 22h29   #5
Invité de passage
 
Inscription : juin 2006
Messages : 1
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 1
Points : 1
Points : 1
Quelqu'un a t'il réussi à mettre en place une politique P3P comme indiqué dans le dernier post ?
Merci
zaver est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/06/2008, 14h30   #6
Membre actif
 
Avatar de bigsister
 
Homme OLE MAIN()
Développeur Web
Inscription : octobre 2002
Messages : 296
Détails du profil
Informations personnelles :
Nom : Homme OLE MAIN()
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : octobre 2002
Messages : 296
Points : 191
Points : 191
C'est en effet un problème de "stratégie" mais qui il me semble n'est pas propre à IE7. J'ai aussi eu ce pb avec IE6.

Voici le code à rajouter au début de la page appelée par iframe (Avant tout echo, print etc.)

Code :
1
2
3
4
5
6
if (isset($_REQUEST['idsession'])) $session_id = $_REQUEST['idsession']; else $session_id = session_id();
 
$nb_heures = 3;
 
header("P3P: policyref=\"http://www.monsite.com/p3p.xml\",CP=\"NON DSP COR CURa PSA PSD OUR BUS NAV STA\"");
setcookie("PHPSESSID",$session_id, time()+(3600*$nb_heures), "/", "monsite.com",0);
Et voici le contenu de mon fichier p3p.xml :
Code :
1
2
3
4
5
6
7
8
9
<?xml version="1.0" encoding="UTF-8" ?>
<META xmlns="http://www.w3.org/2000/12/P3Pv1">
<POLICY-REFERENCES>
   <POLICY-REF about="/w3c/policy.xml">
     <INCLUDE>/*</INCLUDE>
     <COOKIE-INCLUDE>* * *</COOKIE-INCLUDE>
   </POLICY-REF>
</POLICY-REFERENCES>
</META>
Attention, une fois que le fichier XML a été téléchargé par le navigateur il est mis en cache. Pour tester plus d'une page appelée par iframe il faut donc bien veiller à détruire vos sessions (log out) et même redémarrer votre navigateur pour chaque page testée.
bigsister 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 19h29.


 
 
 
 
Partenaires

Hébergement Web