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 :

Perte de session avec une popup sous IE


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 52
    Points : 42
    Points
    42
    Par défaut Perte de session avec une popup sous IE
    Bonjour dans mon site j'utilise la fonction window.open mais j'ai un probleme sous internet explorer...

    En effet sous firefox aucun souci, une fois dans ma popup j'arrive a recuperer les variables de session tout betement et donc mes requetes se font correctement... mais sous IE j'ai une erreur car mes variables de session ne semblent pas exister.

    Comment donc faire pour que mes variables de session se transmettent correctement...

    Merci de votre aide.
    Ide

  2. #2
    Membre expérimenté
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Points : 1 500
    Points
    1 500
    Par défaut
    Normalement c'est censé fonctionner... Montre nous ton code pour voir (ou tu déclenches tes sessions par exemple).

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 52
    Points : 42
    Points
    42
    Par défaut
    Voici le code javascript qui declenche la popup

    <script language="javascript">
    function ouvre() {
    window.open("files.php","list of files on the server","width=400,height=500,top=200,left=400,scrollbars=yes");
    }
    </script>
    <button type="button" onclick="JavaScript: ouvre();">Lien vers une page</button>
    et dans Files.php

    <?
    session_start(); //on démarre une session
    ?>

    <html>
    <head>
    <title>Untitled Document</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    </head>
    session start est vraiment tout au debut....

    Je rappel que dans firefox il n'y a aucun soucis, c'est avec ie que ca bloque sinon j'ai trouve cette article:
    http://lists.nuxeo.com/pipermail/cps...er/013563.html

    et le gars dit :
    Syntaxe possible :

    if (isBadBrowser) {
    //syntaxe qui ne marche qu'avec MSIE
    var oEditor= New Object;
    var oWindow = oEditor.window.open( popup_rte_form+ 'etc ce kon veut' ) ;
    oWindow.opener = window ;
    }
    else {
    // syntaxe habituelle
    window.open('etc');
    }

    isBadBrowser doit representer ie... mais comment dire reellement ie ? lol

  4. #4
    Membre régulier
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Avril 2004
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2004
    Messages : 105
    Points : 80
    Points
    80
    Par défaut
    Hello,

    Bizarre ton souci...

    Moi j'utilise ceci sous IE... et ça fonctionne !!!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <!-- Définition de la fonciton -->
    <script language="javascript">
    <!--
    function popupcentree(page,largeur,hauteur,options)
    {
    var top=(screen.height-hauteur)/2;
    var left=(screen.width-largeur)/2;
    window.open(page,"","top="+top+",left="+left+",width="+largeur+",height="+hauteur+","+options);
    }
    //-->
    </script>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <!-- Lien qui appelle la fonciton -->
    <a href='javascript:popupcentree(\"Repertoire/fichier.php?param1=$var\",650,500,\"menubar=no,scrollbars=yes,statusbar=no\")'><img src='images/icone.gif' width=16 alt=\"Voir les details\" border=0></a>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <!-- Début du fichier fichier.php -->
    <?php
    session_start();
    ?>
    <html>
    <title>Titre pop-up</title>
    <link href="../style.css" rel="stylesheet" type="text/css">
    <body>
    <?php
    require("../fichierdeconflocale.php");
    ...
    blablabla ;)
    Je sais pas si ça peut aider mais au cas ou, c'est là

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 52
    Points : 42
    Points
    42
    Par défaut
    J'ai pas trop regarde ton code mais j'ai fait des copier / coller tout bete et c'est pareil ca marche sous firefox et sous ie les variables de sessions sont perdu.

    Ma version d'IE est la 6 avec le SP2...

    Merci de ton aide en tout cas,...

    Edit : une autre adresse ou une personne a un probleme similaire et avec le ie sp2
    http://forum.matbe.com/materielbe/OS...jet-5399-1.htm

    donc je suis pas le seul ;-)

  6. #6
    Membre régulier
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Avril 2004
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2004
    Messages : 105
    Points : 80
    Points
    80
    Par défaut
    Moi j'utilise aussi IE 6 SP2... la 6.0.2900.2180 pour être précis...

    Peux tu faire un print_r ($_SESSION); dans ta pop-up pour voir...
    On ne sait jamais

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 52
    Points : 42
    Points
    42
    Par défaut
    Merci de ton aide j'ai modifie mon code pour que la popup ouvre la meme page sinon concernant Ie on a la meme version que toi dans la boite.

    sous firefox niquel
    Contenu de la mere
    Array ( [paramServer] => 1 [nomUtilisateur] => azoulay [nomSite] => jeuxvideos [idSite] => 2 [mdp] => ..... [typeUtilisateur] => 2 )

    Contenu de l'enfant (popup)
    Array ( [paramServer] => 1 [nomUtilisateur] => azoulay [nomSite] => jeuxvideos [idSite] => 2 [mdp] => ..... [typeUtilisateur] => 2 )


    Sous IE
    Contenu de la mere
    Array ( [paramServer] => 1 [nomUtilisateur] => azoulay [nomSite] => jeuxvideos [idSite] => 2 [mdp] => ..... [typeUtilisateur] => 2 )

    Contenu de l'enfant (popup)
    rien, ca fait meme la redirection vers la page de refus car l'utilisateur ne s'est pas identifiee...

  8. #8
    Membre expérimenté
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Points : 1 500
    Points
    1 500
    Par défaut
    Et avec ça?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <script language="javascript">
    function ouvre() { 
    window.open("files.php","","width=400,height=500,top=200,left=400,scrollbars=yes"); 
    } 
    </script>
    <button type="button" onclick="ouvre();">Lien vers une page</button>

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 52
    Points : 42
    Points
    42
    Par défaut
    Je programmais sous un serveur Linux debian avec le dernier php et mysql alors j'ai voulu teste sous une autre config ici Easy Php donc sous Windows

    Voici un code tout bete

    pere.php
    <? session_start(); ?>
    <html>
    <head>
    <title>Untitled Document</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    </head>

    <body bgcolor="#FFFFFF" text="#000000">
    <? $_SESSION['test']="bibib"; ?>
    <? echo $_SESSION['test']; ?>
    <script language="javascript">
    function ouvre() {
    window.open("files.php","","width=400,height=500,top=200,left=400,scrollbars=yes");
    }
    </script>
    <button type="button" onclick="ouvre();">Lien vers une page</button>
    </body>
    </html>
    files.php
    <? session_start(); ?>
    <html>
    <head>
    <title>Untitled Document</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    </head>

    <body bgcolor="#FFFFFF" text="#000000">
    <? echo $_SESSION['test']; ?>
    </body>
    </html>
    Sous firefox vous, allez vous en doutez aucun probleme le code marche mais sous Ie j'ai cette erreur qui me dit que ma variable n'existe pas.

    Notice: Undefined index: test in c:\program files\easyphp1-8\www\test\files.php on line 9
    voila c'est trop bisard, ... je continue de chercher de mon cote mais google ne veut pas me donner de reponse


    Edit:
    Pour ceux qui veulent tester j'ai mis le code ci dessous sur mon hebergeur personnel:

    http://playactu.com/test/pere.php

    voila je vous laisse tester, avec firefox ca fonctionne, mais dites moi si chez vous sous ie ca marche ou pas svp.

  10. #10
    Membre régulier Avatar de thanaos
    Inscrit en
    Mai 2006
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 94
    Points : 76
    Points
    76
    Par défaut
    Salut ideal.
    J'ai rencontré un pb dans le style. Cela venait des cookies et plus particulièrement du domaine déclaré dans les cookies.
    Supprime tes cookies, ferme IE (et par en vacances ) et recommence ta manip' pour voir.
    Apache2 / PHP5.4 / MySQL 5/ Win7/RedHat

  11. #11
    Expert éminent
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 488
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 488
    Points : 6 039
    Points
    6 039
    Par défaut
    J'ai souvent constaté ce problème sous IE. Pour ma part cela arrivait de façon aléatoire et la solution fût de vider le cache IE.
    Mon avatar ? Ce n'est rien, c'est juste la tête que je fais lorsque je vois un code complètement frappa dingue !...

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 52
    Points : 42
    Points
    42
    Par défaut
    donc vous quand vous cliquez sur le lien que je vous ai mis plus haut, plus ensuite vous ouvrez la popup la page est vide ou bien vous voyez du texte ?

  13. #13
    Membre régulier Avatar de thanaos
    Inscrit en
    Mai 2006
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 94
    Points : 76
    Points
    76
    Par défaut
    Woui M'sieur.
    J'ai IE6 (6.0.2900.2180...)
    Apache2 / PHP5.4 / MySQL 5/ Win7/RedHat

  14. #14
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 52
    Points : 42
    Points
    42
    Par défaut
    c'est fou j'ai la meme version j'ai beau supprimer le cache/ les cookies et mettre la securtie au plus faible ca ne fonctionne toujours pas sur les pcs du taff... vu que ca me gave et que le bureau est vide je vais rentrer chez moi lol

    Sinon continuez de tester l'url avec differents navigateurs, et donnez moi des feedbacks svp, en esperant que ca m'aidera demain

    Bonne journee et a demain

  15. #15
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 52
    Points : 42
    Points
    42
    Par défaut
    Bon c'est j'arrive ce matin au travail je test et la session passe a travers la popup.... je reviens la apres manger et ca ne marche plus, y a t-il une raison a cela ?

  16. #16
    Expert éminent
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 488
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 488
    Points : 6 039
    Points
    6 039
    Par défaut
    Citation Envoyé par ideal
    Bon c'est j'arrive ce matin au travail je test et la session passe a travers la popup.... je reviens la apres manger et ca ne marche plus, y a t-il une raison a cela ?
    Surement que tu as du trop manger. .
    Vide le cache ferme le navigateur et recommence. As tu définit le domaine dans la déclaration du cookie ? car si tu fais le test de creation d'un cookie dans la page principale et que tu veux lire le cookie dans la popup tu devrais rien voir. Si tu developpes chez toi regarde le fichier temp des session et regarde le comportement du fichier. Tu vides le répertoire en question tu ouvre ton lien là il y a un fichier qui doit être créé. Ouvre a présent la popup. Si un deuxième fichier est créé c'est qu'il ne t'a pas reconnu et donc créé un autre fichier de session.
    Mon avatar ? Ce n'est rien, c'est juste la tête que je fais lorsque je vois un code complètement frappa dingue !...

  17. #17
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 52
    Points : 42
    Points
    42
    Par défaut
    non ca vient pas de mon repas mdrrr sinon merci pour les questions je vais essayer de répondre du mieux possible...

    As tu définit le domaine dans la déclaration du cookie ?
    euh non j'ai pas de cookie juste une variable session que j'initialise de cette facon
    session_start();
    $_SESSION['var']='valeur';

    dois je rajouter quelque chose et si oui quelle instruction

    Le fichier temp des sessions je le trouve ou sur un debian... en attendant ta réponse je vais regarder de mon coté pour ce fichier temp

    Merci de l'aide

  18. #18
    Expert éminent
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 488
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 488
    Points : 6 039
    Points
    6 039
    Par défaut
    Désolé j'étais à la masse pour l'histoire du cookie. En faite, c'est que le serveur ne te reconnait pas en tant que la même personne et pour le savoir il faut regarder dans le fichier temporaire ou son stocké les session. Pour débian je ne sais pas mais tu peux le définir dans le php.ini . tu créés un répertoire que tu peux voir et là tu regardes le comportement des fichier à l'intérieur.
    Mon avatar ? Ce n'est rien, c'est juste la tête que je fais lorsque je vois un code complètement frappa dingue !...

  19. #19
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 52
    Points : 42
    Points
    42
    Par défaut
    Voici la partie Session du php.ini avec EasyPhp, j'ai trouve l'emplacement sur le debian.

    [Session]
    ; Handler used to store/retrieve data.
    session.save_handler = files

    ; Argument passed to save_handler. In the case of files, this is the path
    ; where data files are stored. Note: Windows users have to change this
    ; variable in order to use PHP's session functions.
    ; As of PHP 4.0.1, you can define the path as:
    ; session.save_path = "N;/path"
    ; where N is an integer. Instead of storing all the session files in
    ; /path, what this will do is use subdirectories N-levels deep, and
    ; store the session data in those directories. This is useful if you
    ; or your OS have problems with lots of files in one directory, and is
    ; a more efficient layout for servers that handle lots of sessions.
    ; NOTE 1: PHP will not create this directory structure automatically.
    ; You can use the script in the ext/session dir for that purpose.
    ; NOTE 2: See the section on garbage collection below if you choose to
    ; use subdirectories for session storage
    ;session.save_path = /tmp

    ; Whether to use cookies.
    session.use_cookies = 1

    ; This option enables administrators to make their users invulnerable to
    ; attacks which involve passing session ids in URLs; defaults to 0.
    ; session.use_only_cookies = 1

    ; Name of the session (used as cookie name).
    session.name = PHPSESSID

    ; Initialize session on request startup.
    session.auto_start = 0

    ; Lifetime in seconds of cookie or, if 0, until browser is restarted.
    session.cookie_lifetime = 0

    ; The path for which the cookie is valid.
    session.cookie_path = /

    ; The domain for which the cookie is valid.
    session.cookie_domain =

    ; Handler used to serialize data. php is the standard serializer of PHP.
    session.serialize_handler = php

    ; Define the probability that the 'garbage collection' process is started
    ; on every session initialization.
    ; The probability is calculated by using gc_probability/gc_divisor,
    ; e.g. 1/100 means there is a 1% chance that the GC process starts
    ; on each request.

    session.gc_probability = 1
    session.gc_divisor = 100

    ; After this number of seconds, stored data will be seen as 'garbage' and
    ; cleaned up by the garbage collection process.
    session.gc_maxlifetime = 1440

    ; NOTE: If you are using the subdirectory option for storing session files
    ; (see session.save_path above), then garbage collection does *not*
    ; happen automatically. You will need to do your own garbage
    ; collection through a shell script, cron entry, or some other method.
    ; For example, the following script would is the equivalent of
    ; setting session.gc_maxlifetime to 1440 (1440 seconds = 24 minutes):
    ; cd /path/to/sessions; find -cmin +24 | xargs rm

    ; PHP 4.2 and less have an undocumented feature/bug that allows you to
    ; to initialize a session variable in the global scope, albeit register_globals
    ; is disabled. PHP 4.3 and later will warn you, if this feature is used.
    ; You can disable the feature and the warning seperately. At this time,
    ; the warning is only displayed, if bug_compat_42 is enabled.

    session.bug_compat_42 = 1
    session.bug_compat_warn = 1

    ; Check HTTP Referer to invalidate externally stored URLs containing ids.
    ; HTTP_REFERER has to contain this substring for the session to be
    ; considered as valid.
    session.referer_check =

    ; How many bytes to read from the file.
    session.entropy_length = 0

    ; Specified here to create the session id.
    session.entropy_file =

    ;session.entropy_length = 16

    ;session.entropy_file = /dev/urandom

    ; Set to {nocache,private,public,} to determine HTTP caching aspects
    ; or leave this empty to avoid sending anti-caching headers.
    session.cache_limiter = nocache

    ; Document expires after n minutes.
    session.cache_expire = 180
    Dans le debian je vais dans le dossier temporaire qui est precise mais il est vide, par contre si je vais dans dans le dossier /tmp sous easy php il y a differents fichiers avec ceci comme contenu
    nomUtilisateur|s:7:"AZOULAY";nomSite|s:8:"Playactu";idSite|s:1:"4";mdp|s:7:"u1x9ZlA";typeUtilisateur|s:1:"3";
    A quoi signifie le s:1 ou s:7...

    Merci de ton aide

  20. #20
    Expert éminent
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 488
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 488
    Points : 6 039
    Points
    6 039
    Par défaut
    Ben voila tu l'as trouvé. Effectivement il me semble que easyphp à son propre repertoire temporaire. Le contenu que tu vois c'est le contenu de ta session en faite c'est les variables sérialisées. Ce fichier est attribué à un client. Donc si tu fais le teste que j'ai cité tu verras si le serveur voit toujours la même personne ou non.
    Mon avatar ? Ce n'est rien, c'est juste la tête que je fais lorsque je vois un code complètement frappa dingue !...

Discussions similaires

  1. Un probleme avec une popup
    Par snoups58 dans le forum Général JavaScript
    Réponses: 37
    Dernier message: 03/02/2006, 13h40
  2. Aide avec une popup et la page parente
    Par iomega dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 08/12/2005, 15h21
  3. variables de session dans une popup
    Par erka dans le forum Langage
    Réponses: 7
    Dernier message: 26/11/2005, 19h29
  4. [JDBC] Requête avec une date sous la forme dd/MM/yyyy
    Par sylviefrfr dans le forum JDBC
    Réponses: 6
    Dernier message: 12/11/2005, 09h35
  5. Réponses: 14
    Dernier message: 09/08/2004, 13h42

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