IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Variable de sessions et frame


Sujet :

Langage PHP

  1. #1
    Membre confirmé
    Profil pro
    Responsable administration fonctionnelle SAP
    Inscrit en
    Octobre 2003
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Responsable administration fonctionnelle SAP
    Secteur : Transports

    Informations forums :
    Inscription : Octobre 2003
    Messages : 60
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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>

  2. #2
    Membre éclairé Avatar de randimby
    Inscrit en
    Décembre 2003
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 64
    Par défaut
    Tu as mis @session_start() dans tous les scripts?

  3. #3
    Membre confirmé
    Profil pro
    Responsable administration fonctionnelle SAP
    Inscrit en
    Octobre 2003
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Responsable administration fonctionnelle SAP
    Secteur : Transports

    Informations forums :
    Inscription : Octobre 2003
    Messages : 60
    Par défaut
    APPAREMMENT oui, le start_session est dans mon include...

  4. #4
    Membre très actif
    Profil pro
    Inscrit en
    Février 2007
    Messages
    248
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 248
    Par défaut
    Bonjour,

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

    Merci d'avance

  5. #5
    FoxLeRenard
    Invité(e)
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 !

  6. #6
    Expert confirmé
    Avatar de N1bus
    Homme Profil pro
    Dev. Web & OpenERP
    Inscrit en
    Janvier 2003
    Messages
    2 827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Dev. Web & OpenERP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 827
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  7. #7
    Membre très actif
    Profil pro
    Inscrit en
    Février 2007
    Messages
    248
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 248
    Par défaut
    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 ?

  8. #8
    Expert confirmé
    Avatar de N1bus
    Homme Profil pro
    Dev. Web & OpenERP
    Inscrit en
    Janvier 2003
    Messages
    2 827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Dev. Web & OpenERP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 827
    Par défaut
    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.

  9. #9
    FoxLeRenard
    Invité(e)
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

  10. #10
    Membre très actif
    Profil pro
    Inscrit en
    Février 2007
    Messages
    248
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 248
    Par défaut
    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,

  11. #11
    FoxLeRenard
    Invité(e)
    Par défaut
    Bonjour,

    100% OK avec toi !!

    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 !

Discussions similaires

  1. frame window open variable de session
    Par emilek dans le forum Langage
    Réponses: 3
    Dernier message: 05/10/2007, 15h19
  2. Variable de sessions qui disparaissent (pseudo-frames)
    Par lecharcutierdelinux dans le forum Langage
    Réponses: 11
    Dernier message: 09/02/2007, 22h25
  3. Effacer les variables de session
    Par glsn dans le forum ASP
    Réponses: 2
    Dernier message: 12/12/2003, 13h42
  4. Variable de session
    Par Sadneth dans le forum ASP
    Réponses: 6
    Dernier message: 14/11/2003, 11h12
  5. variable de session
    Par divableue dans le forum ASP
    Réponses: 2
    Dernier message: 23/10/2003, 16h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo