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 11/08/2006, 11h23   #1
Candidat au titre de Membre du Club
 
Inscription : novembre 2003
Messages : 52
Détails du profil
Informations forums :
Inscription : novembre 2003
Messages : 52
Points : 14
Points : 14
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
ideal est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/08/2006, 11h32   #2
Membre Expert
 
Avatar de Anduriel
 
Homme
Étudiant
Inscription : février 2004
Messages : 2 168
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : février 2004
Messages : 2 168
Points : 1 277
Points : 1 277
Normalement c'est censé fonctionner... Montre nous ton code pour voir (ou tu déclenches tes sessions par exemple).
Anduriel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/08/2006, 11h41   #3
Candidat au titre de Membre du Club
 
Inscription : novembre 2003
Messages : 52
Détails du profil
Informations forums :
Inscription : novembre 2003
Messages : 52
Points : 14
Points : 14
Voici le code javascript qui declenche la popup

Citation:
<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

Citation:
<?
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
ideal est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/08/2006, 11h56   #4
Membre du Club
 
Homme Aurél
Responsable de projet fonctionnel
Inscription : avril 2004
Messages : 100
Détails du profil
Informations personnelles :
Nom : Homme Aurél
Âge : 31
Localisation : France, Oise (Picardie)

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

Informations forums :
Inscription : avril 2004
Messages : 100
Points : 41
Points : 41
Envoyer un message via ICQ à Jordel Envoyer un message via AIM à Jordel Envoyer un message via MSN à Jordel
Hello,

Bizarre ton souci...

Moi j'utilise ceci sous IE... et ça fonctionne !!!
Code :
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 :
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 :
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à
Jordel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/08/2006, 12h04   #5
Candidat au titre de Membre du Club
 
Inscription : novembre 2003
Messages : 52
Détails du profil
Informations forums :
Inscription : novembre 2003
Messages : 52
Points : 14
Points : 14
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 ;-)
ideal est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/08/2006, 12h11   #6
Membre du Club
 
Homme Aurél
Responsable de projet fonctionnel
Inscription : avril 2004
Messages : 100
Détails du profil
Informations personnelles :
Nom : Homme Aurél
Âge : 31
Localisation : France, Oise (Picardie)

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

Informations forums :
Inscription : avril 2004
Messages : 100
Points : 41
Points : 41
Envoyer un message via ICQ à Jordel Envoyer un message via AIM à Jordel Envoyer un message via MSN à Jordel
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
Jordel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/08/2006, 12h20   #7
Candidat au titre de Membre du Club
 
Inscription : novembre 2003
Messages : 52
Détails du profil
Informations forums :
Inscription : novembre 2003
Messages : 52
Points : 14
Points : 14
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...
ideal est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/08/2006, 20h37   #8
Membre Expert
 
Avatar de Anduriel
 
Homme
Étudiant
Inscription : février 2004
Messages : 2 168
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : février 2004
Messages : 2 168
Points : 1 277
Points : 1 277
Et avec ça?

Code :
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>
Anduriel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/08/2006, 09h30   #9
Candidat au titre de Membre du Club
 
Inscription : novembre 2003
Messages : 52
Détails du profil
Informations forums :
Inscription : novembre 2003
Messages : 52
Points : 14
Points : 14
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(); ?>
Citation:
<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
Citation:
<? 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.

Citation:
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.
ideal est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/08/2006, 11h54   #10
Membre du Club
 
Avatar de thanaos
 
Inscription : mai 2006
Messages : 89
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 89
Points : 50
Points : 50
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.1.6 / Oracle9i / MySQL 5/ Windows 2003 Server
thanaos est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/08/2006, 12h10   #11
Expert Confirmé
 
Avatar de berceker united
 
Développeur informatique
Inscription : février 2005
Messages : 2 982
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : février 2005
Messages : 2 982
Points : 3 567
Points : 3 567
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 !...
berceker united est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/08/2006, 12h20   #12
Candidat au titre de Membre du Club
 
Inscription : novembre 2003
Messages : 52
Détails du profil
Informations forums :
Inscription : novembre 2003
Messages : 52
Points : 14
Points : 14
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 ?
ideal est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/08/2006, 12h27   #13
Membre du Club
 
Avatar de thanaos
 
Inscription : mai 2006
Messages : 89
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 89
Points : 50
Points : 50
Woui M'sieur.
J'ai IE6 (6.0.2900.2180...)
__________________
Apache2 / PHP5.1.6 / Oracle9i / MySQL 5/ Windows 2003 Server
thanaos est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/08/2006, 12h53   #14
Candidat au titre de Membre du Club
 
Inscription : novembre 2003
Messages : 52
Détails du profil
Informations forums :
Inscription : novembre 2003
Messages : 52
Points : 14
Points : 14
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
ideal est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/08/2006, 13h44   #15
Candidat au titre de Membre du Club
 
Inscription : novembre 2003
Messages : 52
Détails du profil
Informations forums :
Inscription : novembre 2003
Messages : 52
Points : 14
Points : 14
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 ?
ideal est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/08/2006, 13h51   #16
Expert Confirmé
 
Avatar de berceker united
 
Développeur informatique
Inscription : février 2005
Messages : 2 982
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : février 2005
Messages : 2 982
Points : 3 567
Points : 3 567
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 !...
berceker united est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/08/2006, 15h59   #17
Candidat au titre de Membre du Club
 
Inscription : novembre 2003
Messages : 52
Détails du profil
Informations forums :
Inscription : novembre 2003
Messages : 52
Points : 14
Points : 14
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
ideal est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/08/2006, 16h17   #18
Expert Confirmé
 
Avatar de berceker united
 
Développeur informatique
Inscription : février 2005
Messages : 2 982
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : février 2005
Messages : 2 982
Points : 3 567
Points : 3 567
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 !...
berceker united est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/08/2006, 09h39   #19
Candidat au titre de Membre du Club
 
Inscription : novembre 2003
Messages : 52
Détails du profil
Informations forums :
Inscription : novembre 2003
Messages : 52
Points : 14
Points : 14
Voici la partie Session du php.ini avec EasyPhp, j'ai trouve l'emplacement sur le debian.

Citation:
[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
Citation:
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
ideal est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/08/2006, 10h04   #20
Expert Confirmé
 
Avatar de berceker united
 
Développeur informatique
Inscription : février 2005
Messages : 2 982
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : février 2005
Messages : 2 982
Points : 3 567
Points : 3 567
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 !...
berceker united est déconnecté   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 05h07.


 
 
 
 
Partenaires

Hébergement Web