Bonjour à tous,
J'utilise le système de session PHP pour gérer un espace admin. Pour cela, j'ai créé une classe en php toute simple qui me permet d'appeler mes fonctions en orienté objet. En gros donc, j'ai mon fichier classSession.inc (que je fais appel dès le début de la page test) puis j'initialise ma session par $Session = new mvSession(); (dans la fichier classSession, la fonction mvSession comporte la ligne suivante : @session_start(); )
Pour le reste, c'est pareil comme attribuer une variable à la session ouverte, je fais de ce style : $Session->SetValue('champ', 'valeur'); où SetValue équivaut en php à $_SESSION['champ'] = 'valeur';.
Bref, en gros voilà. Ce système marchait très bien sur un autre hébergement et là, je le teste sur un nouveau site et BIP, ça ne marche. Le plus byzarre, c'est que ça me le fait aussi sur trois autres sites (sur 5). J'ai alors vérifié ce qu'il clochait et j'ai compris alors que la session ne me retournait pas la valeur de la variable alors que j'en ai attribué une (par ma fonction SetValue - voir plus haut). J'ignorais pourquoi ? J'ai fait des test et alors, j'ai remarqué qu'à chaque actualisation de la page, ma session me retournait un nouveau id de session que je récupère avec session_id. Cela prouve qu'il m'en créé une nouvelle à chaque fois. Est-ce ça ? Et pourquoi ? That is the question !
Merci de votre aide. Bien sûr, ce souci ne vient que si je fais appel à la classe "classSession.inc" que j'ai créé avec mes petites fonctions en orienté objet, en revanche, si je fais appel aux fonction de php pour la gestion des sessions directement sur mon fichier test, bingo, ça marche...
Le fichier test se trouve à cette adresse : http://www.jeuxaxiii.fr/test/testsession.php
Merci à tous pour votre aide.
Amicalement.
Greg005.
Voici le bout de code tout simple
La classe classSession.inc
Code php : 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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79 <?php /*********************************************************************** * Classe de gestion de session * ***********************************************************************/ class mvSession { /*********************************************************************** * Constructeur de la classe mvSession * *---------------------------------------------------------------------* * $Appli : Nom de l'application * * $SessID : Numéro de la session * * $Contol : Clé de contrôle * ***********************************************************************/ function mvSession() { @session_start(); } /*********************************************************************** * Affecte une variable de session * *---------------------------------------------------------------------* * $Var : Nom de la variable * * $Value : Valeur de la variable * ***********************************************************************/ function SetValue($Var, $Value) { $_SESSION[$Var] = $Value; } /*********************************************************************** * Retourne le contenu d'une variable de session * *---------------------------------------------------------------------* * $Var : Nom de la variable * ***********************************************************************/ function GetValue($Var) { if (isset($_SESSION[$Var])) $Value = $_SESSION[$Var]; else $Value = NULL; return $Value; } /*********************************************************************** * Retourne le contenu d'une variable de session * *---------------------------------------------------------------------* * * ***********************************************************************/ function GetId() { $Value = session_id(); return $Value; } /*********************************************************************** * Arrêter la session * ***********************************************************************/ function Stop() { $_SESSION = array(); session_destroy(); } /*********************************************************************** * Fin de la classe mvSession * ***********************************************************************/ } ?>
et la page testsession.php
Code html : 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 include('class/ClassSession.inc'); $Session = new mvSession(); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta name="Robots" content="none"> <meta name="Author" content="Unknow"> <meta name="Copyright" content="mvSoft"> <meta name="Generator" content="FrontNet2008 (Win32)"> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> <meta http-equiv="Content-Language" content="fr"> </head> <body> <?php if (isset($_GET['test'])) $test = $_GET['test']; else $test = 0; echo "<a href='testsession.php?test=1'>Appuyer sur le bouton</a>"; if ($test == 1) { $id = session_id(); echo $id; } ?> </body> </html>
Partager