Bonjour à tous,
Après avoir parcouru maintes et maintes forum j'y vais aussi de mon post.
En effet j'ai une gestion de secteur sur mon site Internet grâce à des sessions sauf que je perds ma session systématiquement.
Sur le principe, mon secteur apparait dans mon url et je lance des tests pour définir ma session.
Quand le secteur est dans l'url tout fonctionne sauf que dès qu'il n'apparait plus dans l'url la session ne fonctionne pas.
Pour faire plus simple voici mon code php :
Mon navigateur gère bien les cookies et ne les bloque pas.
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54 // Il s'agit de la durée au-delà de laquelle des données de session seront considérées comme périmées. ini_set("session.gc_maxlifetime","3600"); // Si cette option est égale à 1, alors PHP ignorera les identifiants transmis via l'url pour n'utiliser que ceux contenus dans les cookies. ini_set("session.use_only_cookies","1"); session_start(); /******************************************** * GESTION SECTEURS * ********************************************/ // on récupére le secteur selectionné par le navigateur if (!isset($_SESSION['villeID'])) { if ( (isset($_GET['ville'])) && (!empty($_GET['ville'])) ) { $villeName = (isset($_GET['ville'])) ? trim($_GET['ville']) : null; $villeName = mysql_real_escape_string($villeName); $sqlQueryList = " SELECT * ". " FROM VILLE_LIST ". " WHERE VILLE_NAME LIKE '$villeName'". " ORDER BY VILLE_ID ASC LIMIT 0,1"; $reqList = mysql_query($sqlQueryList); $reqVilleResult = mysql_fetch_array($reqList); if (!empty($reqVilleResult['VILLE_ID'])) { $idSecteur = $reqVilleResult['VILLE_ID']; $_SESSION['villeID'] = $reqVilleResult['VILLE_ID']; } else { $idSecteur = 4; } } else { $idSecteur = 1; } } elseif (isset($_SESSION['villeID'])) { $idSecteur = (isset($_SESSION['villeID'])) ? trim($_SESSION['villeID']) : null; if(!empty($idSecteur) && ctype_digit($idSecteur)) { $idSecteur = intval($idSecteur); } }
Voici ce que dit phpinfo sur les sessions:
Et voici une ligne de mon .htaccess :
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 Session Support enabled Registered save handlers files user sqlite Registered serializer handlers php php_binary wddx Directive Local Value Master Value session.auto_start Off Off session.bug_compat_42 On On session.bug_compat_warn On On session.cache_expire 180 180 session.cache_limiter nocache nocache session.cookie_domain no value no value session.cookie_httponly Off Off session.cookie_lifetime 0 0 session.cookie_path / / session.cookie_secure Off Off session.entropy_file no value no value session.entropy_length 0 0 session.gc_divisor 100 100 session.gc_maxlifetime 1440 1440 session.gc_probability 0 0 session.hash_bits_per_character 4 4 session.hash_function 0 0 session.name PHPSESSID PHPSESSID session.referer_check no value no value session.save_handler files files session.save_path /tmp /tmp session.serialize_handler php php session.use_cookies On On session.use_only_cookies Off Off session.use_trans_sid 0 0
Une âme charitable pour m'aider ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 # Interdiction des sessions dans l'url : SetEnv SESSION_USE_TRANS_SID 0
D'où peut venir mon problème ?
Merci par avance,
Aurélien
Partager