Bonjour, voici mon problème.
Je viens de développer un site utilisant des sessions php. Il a été développé en local sur ma machine (apache2). Je viens de le tester sur notre serveur IIS 6 w2003 server.
Aprés l'authentification je tombe sur une page qui crée ma session. Lorsque je clique sur un lien qui m'amène sur une autre page, je perd ma session php.
En vérifiant dans le répertoire des sessions de php je me suis rendu compte qu'il me créait un fichier sess_xxxxxxx a chaque page chargée. Il ne garde donc pas la session originale.
voici mon php.ini:
-session.save_handler = files
-session.save_path = D:\Internet\WWW\SESSIONS
-session.use_cookies = 1
-session.name = PHPSESSID
-session.auto_start = 0
-session.cookie_path = /
-session.cookie_domain =
-session.serialize_handler = php
-session.gc_maxlifetime = 1440
-session.cache_expire = 180
-session.cache_limiter = nocache
-session.use_trans_sid = 0
Mon serveur IIS posséde plusieurs sites, ça ne le fait pas sur les autres sites : ex, si je copie mon répertoire de ce site dans le rep du site1, ça fonctionne correctement, pas de perte de session. Je me dis qu'il y a un problème de paramétrage IIS quelque part, mais ou ?
De plus ils utilisent le meme php.ini avec la meme version de php (4.3.10)
J'ai réalisé d'autres test histoire de faire plus vite:
J'ai crée 2 fichiers 1.php et 2.php pour tester, ça m'évite de m'authentifier à chaque fois (oui je saisi chuis flémard).
Fichier : 2.php :
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 <?php session_start (); $_SESSION['CLIENT'] = 'CLIENT'; ?> <!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> <title>Bienvenue</title> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /> <meta http-equiv="Content-Language" content="fr" /> <meta http-equiv="Content-Script-Type" content="text/javascript" /> <meta http-equiv="Content-Style-Type" content="text/css" /> <meta name="DC.Language" scheme="RFC3066" content="fr" /> <SCRIPT LANGUAGE="JavaScript" SRC="../js/outils_javascript.js"></script> </head> <body> <?php echo 'CLIENT:'.$_SESSION['CLIENT']; ?> <A HREF="2.php"> Page suivante</A> </body> </html>
Bilan:
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 <?php session_start (); ?> <!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> <title>RESTOCB : Bienvenue</title> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /> <meta http-equiv="Content-Language" content="fr" /> <meta http-equiv="Content-Script-Type" content="text/javascript" /> <meta http-equiv="Content-Style-Type" content="text/css" /> <meta name="DC.Language" scheme="RFC3066" content="fr" /> </head> <body> <?php echo 'CLIENT:'.$_SESSION['CLIENT']; ?> </body> </html>
A chaque actualisation de 1.php, un nouveau fichier de session sess_xxxx est crée et lorsque je clique sur le lien 2.php ne récupère pas la valeur "CLIENT" et recrée lui aussi un fichier de session doit la taille est 0ko qui bien sûr est vide.
Au niveau paramétrage IIS, la case "Activer l'état de session" est cochée.
Je me dis qu'il doit y avoir une différence de paramétrage IIS entre mes 2 sites (je rapelle que seul le 2eme perd les sessions et que si je copie le repertoire racine de mon site 2 sur le site1 cela fonctionne correctement).
Si quelqu'un a une idée merci de m'aider car là j'avoue que je ne sais plus trop quoi faire.
Partager