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 10/06/2008, 16h53   #1
Candidat au titre de Membre du Club
 
Inscription : octobre 2003
Messages : 30
Détails du profil
Informations forums :
Inscription : octobre 2003
Messages : 30
Points : 12
Points : 12
Par défaut Variable de sessions et frame

Bonjour ,

J'ai un problème je n'arrive pas à récupérer ma variable de session d'une frame à une autre... Est-ce que quelqu'un aurait une idée???

Include où se trouve ma variable dernier message
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<?php
session_start();
include("include/fonctionPHP.php");
 
//passage des infos ds l'url manuellement
 $session_name = session_name();
 $session_id = session_id();
 $info_session = "$session_name=$session_id";
 
// On récupère l'action de l'utilisateur
$action = isset($_POST['action']) ? $_POST['action'] : '';
 
// connexion à la base
 $connexion = mysql_connect("",$G_Admin,$G_Password_Admin);
 mysql_select_db("$G_DB",$connexion) ;
 
if ($action=="Envoyer")
    {
$id_user = $_SESSION['session_iduser'] ;
//$texte  = addslashes(@$_POST['message']);
$texte  = @$_SESSION["dernierMessage"];
 
     $sql_msg="INSERT into chat_message (id_user,texte) ";
     $sql_msg .= "values ('".$id_user."','".$texte."');";
     $query=@mysql_query($sql_msg);
 
   @$_SESSION["dernierMessage"] =  SetLastIdMessage(mysql_insert_id(),$connexion);
 
     	header("Location: message_envoie.php");
     exit;
      }
 
 
?>
formulaire où je veux lé recupérer
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
?php
include("include/param_global.php");
include("include/action_msg.php");
 
//Initialisation variable de page
$ident = $_SESSION['session_login'];
$password = $_SESSION['session_password'];
 
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
    <script type="text/javascript" language="javascript" src="script/ajax.js"></script>
    <script type="text/javascript" language="javascript" >
    // Le fonction javascript est appelée toutes les 5 secondes
    function ChargeMsg()
    {
    loadXMLAsynchroneously('post', 'xml.php', null ,'contenu');
    setTimeout("ChargeMsg()", 5000);
    }
 </script>
</head>
 
<body onload="ChargeMsg()">
<div id="contenu">
</div>
 
</body>
</html>
LN69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/06/2008, 18h28   #2
Membre du Club
 
Avatar de randimby
 
Inscription : décembre 2003
Messages : 64
Détails du profil
Informations forums :
Inscription : décembre 2003
Messages : 64
Points : 57
Points : 57
Envoyer un message via MSN à randimby
Tu as mis @session_start() dans tous les scripts?
randimby est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/06/2008, 19h24   #3
Candidat au titre de Membre du Club
 
Inscription : octobre 2003
Messages : 30
Détails du profil
Informations forums :
Inscription : octobre 2003
Messages : 30
Points : 12
Points : 12
APPAREMMENT oui, le start_session est dans mon include...
LN69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/04/2009, 20h17   #4
Membre actif
 
Avatar de albedo0
 
Julien C
Inscription : février 2007
Messages : 207
Détails du profil
Informations personnelles :
Nom : Julien C
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : février 2007
Messages : 207
Points : 167
Points : 167
Bonjour,

J'ai le même problème que toi... as-tu trouvé une solution ?

Merci d'avance
albedo0 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/05/2009, 10h39   #5
FoxLeRenard
Invité(e)
 
Messages : n/a
Détails du profil
Informations forums :
Messages : n/a
Points : 0
Citation:
Envoyé par LN69 Voir le message
Bonjour ,
Bonjour,

Tu poses une question mais mets toi a notre place,
dans les codes que tu nous montres, il y a d'un coté du MYSQL

Et dans l'autre un html qui appelle un javascript

Ta question dans tout ça concerne une de tes valeur de session
dernierMessage alors que veux tu que nous répondions

Moi j'attendais un genre

dans le include

Code :
1
2
3
4
5
6
7
8
 
<?PHP
session_start();
if (!isset($_SESSION['dernierMessage']))   
{$_SESSION['dernierMessage']="";$dernierMessage="";}
     else {$dernierMessage=$_SESSION['dernierMessage'];}
 
?>
En plus ne devant jamais écrire dans le header même si le reste peut étre
dans un include, j'aurais retiré du include le session_start pour le mettre systématiquement en haut de toutes les pages !

ET SURTOUT PA DE @ si non tu ne verras plus si il y a erreur ou pas !
  Envoyer un message privé Réponse avec citation 00
Vieux 23/05/2009, 00h52   #6
Rédacteur/Modérateur
 
Avatar de N1bus
 
Inscription : janvier 2003
Messages : 2 018
Détails du profil
Informations personnelles :
Âge : 47
Localisation : France, Charente Maritime (Poitou Charente)

Informations forums :
Inscription : janvier 2003
Messages : 2 018
Points : 1 992
Points : 1 992
Bonjour,

Je ne sais pas si j'ai bien compris le problème, mais s'il s'agit de la perte des variables de session d'une FRAME à l'autre ou avec un IFRAME j'ai déja eu le problème :

L’astuce :
Consiste a envoyer une en-tête HTTP spécifique (en-tête de stratégie compacte P3P / Microsoft) :
Code :
1
2
3
4
<?php
// avant session_start()
header('P3P: CP="CAO PSA OUR"');
?>
Selon Microsoft :
La norme P3P indique que, si une balise FRAMESET ou une fenêtre parente référence un autre site à l’intérieur d’une TRAME ou à l’intérieur d’une fenêtre enfant, le site enfant est considéré comme contenu de tiers. Internet Explorer, qui utilise le paramètre de confidentialité par défaut Moyen, repousse silencieusement des cookies envoyés par des sites tiers.

Cet en-tête abaisserait donc la sensibilité de IE et permettrait de lui “faire croire” que les données provenant de la page tiers sont “sûres”

Voir l’article complet sur le site : http://support.microsoft.com/kb/323752
N1bus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/05/2009, 09h26   #7
Membre actif
 
Avatar de albedo0
 
Julien C
Inscription : février 2007
Messages : 207
Détails du profil
Informations personnelles :
Nom : Julien C
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : février 2007
Messages : 207
Points : 167
Points : 167
Citation:
Envoyé par N1bus Voir le message
L’astuce :
Consiste a envoyer une en-tête HTTP spécifique (en-tête de stratégie compacte P3P / Microsoft)
J'avais essayé mais sans succès... personnellement je me suis débrouillé mais ça fait un peu bidouille...

Ce paramètre est-il compatible avec Firefox ?
albedo0 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/05/2009, 15h29   #8
Rédacteur/Modérateur
 
Avatar de N1bus
 
Inscription : janvier 2003
Messages : 2 018
Détails du profil
Informations personnelles :
Âge : 47
Localisation : France, Charente Maritime (Poitou Charente)

Informations forums :
Inscription : janvier 2003
Messages : 2 018
Points : 1 992
Points : 1 992
Citation:
Ce paramètre est-il compatible avec Firefox ?
Je ne crois pas, il semblerait que c'est le système de confidentialité de IE qui est en cause.
N1bus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/05/2009, 17h21   #9
FoxLeRenard
Invité(e)
 
Messages : n/a
Détails du profil
Informations forums :
Messages : n/a
Points : 0
Citation:
Envoyé par albedo0 Voir le message
J'avais essayé mais sans succès... personnellement je me suis débrouillé mais ça fait un peu bidouille...
Ce paramètre est-il compatible avec Firefox ?
Bonjour l'Ami,
Je suis intervenu le 12 vers 10h ... et toujours rien,

Si tu as envie de savoir magnier les sessions, il va te falloir choisir UNE piste
et t'y tenir, et si tu n'arrives pas, une autre !

Je vais essayer d'étre clair,

Quand on reste dans un seul domaine, les pages, les popup, les iframes etc... appartiennent a une session ID unique !

Mais pas forcément disponible !! alors quand est-ce disponible ?
partout si tu respectes scrupuleusement ces régles



1) dans toutes tes pages tu commences par
session_start();
2) dans AUCUN de tes include tu ne dois avoir
session_start();
3) si tu ouvre une popup, en fait c'est une nouvelle page
donc elle doit avoir son
session_start(); mais pas ces propres includes
4) si tu a dans ton HTML un IFRAME type:
Code :
1
2
3
4
 
<iframe src ="machin.php" width="700" height="300">
  <p>Your browser does not support iframes.</p>
</iframe>
tu respecte les régles suivantes ta session sera intacte
et même mieux ....
ce qui éventuellement sera modifié sera vu par toutes les autres pages
Mais attention !!
a) tu dois bien sur respecter les mêmes régles donc en premiére ligne de
machin.php tu aura bien entendu session_start();

et comme toute page aucun include avec session_start();
et comme tu l'avais fait , AUCUN TRANSFERT DE SESSION puisque tu es toujours dans la seule et unique session !

b) LE PLUS IMPORTANT aucun code ne doit étre mis entre les balises
IFRAME et pas d'appelles sur d'autres domaines !!!!!!!!!!!!!!!!


Bon tiens moi au courant, mais saches que je savais cela ce matin en me levant, Mais j'ai retesté cela en vrais grandeur, avec un méchant IE7 sans aucune modif de paramétres de base !

Bon voila, je réédites car je viens de refaire tout le même test en prenant des frames et la bien entendu le HTML ou le PHP qui lance les frames n'OUVRE PAS DE SESSIONS
en effet ce sont les PHP de chaque "fenetre qui le font "

Dernière modification par FoxLeRenard ; 23/05/2009 à 18h19.
  Envoyer un message privé Réponse avec citation 00
Vieux 28/05/2009, 14h47   #10
Membre actif
 
Avatar de albedo0
 
Julien C
Inscription : février 2007
Messages : 207
Détails du profil
Informations personnelles :
Nom : Julien C
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : février 2007
Messages : 207
Points : 167
Points : 167
Citation:
Envoyé par FoxLeRenard Voir le message
Quand on reste dans un seul domaine, les pages, les popup, les iframes etc... appartiennent a une session ID unique !
Bonjour,

Mon problème (bien que résolu aujourd'hui) était justement lié au fait que ma frame n'appartenait pas au même domaine...

Même si en réalité les pages sont hebergées au même endroit... Et là on va me demander si je suis sûr de ce que j'avance...

Pour expliquer ça, il faut que j'en dise un peu plus. Mon projet de départ était de développer un petite appli pour le site communautaire Facebook. Ca fonctionnait très bien, mais le jour ou j'ai voulu passer à la version 2, plus beau, plus fort, plus drole !! J'ai été confronté à ce problème.

EN effet, les pages chargées directement dans facebook bien qu'hebergées au même endroit que les autres appartiennent au domaine facebook.com, alors que les pages chargées dans le frame non...

D'après ce que j'ai cru comprendre, on reste de toute façon lié au domaine... donc mon problème n'était pas solvable "proprement".

Bonne journée,
albedo0 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/05/2009, 15h11   #11
FoxLeRenard
Invité(e)
 
Messages : n/a
Détails du profil
Informations forums :
Messages : n/a
Points : 0
Bonjour,

100% OK avec toi !!

Citation:
Même si en réalité les pages sont hebergées au même endroit... Et là on va me demander si je suis sûr de ce que j'avance...
Ceux qui ne te croient pas ont tort !!
Le serveur n'est enaucun cas lié aux cookies ... en effet prenons un petit html qui créerais un cookie avec compteur

Je le mets sur MON MICRO (le même serveur)
dans 10 repertoires ... (10 domaines différents)

le test est vite fait c'est le domaine qui compte !
  Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h45.


 
 
 
 
Partenaires

Hébergement Web