Bonjour,
Voilà, je suis nouveau en PHP et je me retrouve confronté à un problème:
J'ai 2 objets que je voudrais rendre globaux à l'application, c'est à dire que je voudrais les instancier une fois lors de la demande de "index.php", et ensuite pouvoir les utiliser.
Mon application est très simple, elle a 3 menus qui lorsqu'on clique dessus rechargent "index.php" en lui passant des paramètres dans l'URL afin d'en déterminer le contenu.
Seulement voilà: Quand la page index.php se recharge, mes objets globaux se réinitialisent aussi! Du coup je perd toutes les infos que j'avais stockées...
Un objet global sert pour la connection à la base de données, et l'autre à la gestion de l'utilisateur loggué.
Voici le code simplifié:
index.php
Le code qui pose problème se trouve dans "initObjects.php". En effet, a chaque fois que la page est chargée, bien que j'ai mis les objets dans des variables globales, ceux-ci sont toujours inexistants lors du chargement....
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 <?php // Initialisations include("Init/initIncludesPaths.php") ; // Initialisation des includes include("Init/initObjects.php") ; // Initialisation des objets --> code qui pose problème ?> <!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> <title>Un titre</title> </head> <body> <div id='page_wrapper'> <div id='page_header'> <?php include("InterfaceGraphique/Template/page_header.php")?> </div> <div id='menu_bar'> <div id='navcontainer'> <ul id='navlist'> <?php include("InterfaceGraphique/Template/navlist.php")?> </ul> </div> </div> <div id='content_wrapper'> <div id='left_side'> <?php include("InterfaceGraphique/Template/left_side.php")?> </div> <div id='right_side'> <?php include("InterfaceGraphique/Template/right_side.php")?> </div> <div id='center'> <?php include("InterfaceGraphique/Template/center.php")?> </div> </div> <div id='page_footer'> <?php include("InterfaceGraphique/Template/page_footer.php")?> </div> </div> </body> </html>
initObjects.php
Du coup, je n'arrive pas à naiguer dans le site, car l'utilisateur se réinitialise à chaque appel de index.php, m'obligeant à me relogguer.
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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77 <?php // Initialisation de la BD si l'utilisateur n'y est pas connecté initDatabase(); // Initialisation de la session si l'utilisateur n'est pas loggué initSessionDefaults(); // Initialisation de l'objet utilisateur initUser() ; // Initialisation de l'objet utilisateur function initUser() { if(!isset($GLOBALS['user'])) { // Problème, passe toujours ici à chaque chargement // de index.php! $GLOBALS['user']= new user() ; } //Si on est en train de logguer $page = params::getParamFromURL('page', 'POST') ; if(isset($page)) { // Essayer de logguer l'utilisateur $login = params::getParamFromURL('login', 'POST') ; $pass = params::getParamFromURL('pass', 'POST') ; if(isset($login) && isset($pass)) { $GLOBALS['user']->checkLogin($login, $pass, false) ; if($GLOBALS['user']->failed == true) { navigation::gotoLogin(); } else { navigation::gotoAcceuil(); } } } } // Fonction qui initalise la connection à la base de données function initDatabase() { // Problème, passe toujours ici à chaque chargement // de index.php! if(!isset($GLOBALS['adressesBD'])) { $GLOBALS['adressesBD']= new adressesBD() ; // On se connecte de suite à la base $GLOBALS['adressesBD']->connect(); } } // Fonction qui initilalise l'objet de session function initSessionDefaults() { if (!isset($_SESSION['uid']) ) { $_SESSION['logged'] = false; $_SESSION['uid'] = 0; $_SESSION['username'] = ''; $_SESSION['cookie'] = 0; $_SESSION['remember'] = false; } } ?>
Et-ce que je fais quelque-chose de faux?
Merci pour votre aide!
Partager