Bonjour,
J'essaie d'apprendre à faire des classes en php afin de mieux structurer mes applications.
J'utilise smarty comme moteur de template.
Voilà donc ce j'essaie de faire. J'ai une page index.php (index.tpl) et une page login.php (login.tpl).
J'ai une classe qui gère les exceptions (elle est encore vide, mais bon. c'est pas mal pour débuter). Et enfin un fichier headers.php qui est appelé par chaque fichier php au début qui a pour but de charger toutes les classes et vérifier quelques petites choses, comme vérifier si la personne est déjà identifiée ou non sur son espace membre. Et en dernier, une classe cSessions qui contiendra les fonctions de vérification.
Le problème est que lorsque je veux initier une vérification en utilisant la classe cSessions, le retour n'est pas celui que j'attends.
Je l'appel depuis le fichier cHeaders dans un try / catch, mais si le membre n'est pas identifié, au lieu d'afficher le message d'erreur, il affiche le contenu de la page index.
$toto = cSessions::isAuth();
Auriez-vous une idée pour régler ce problème ?
Voilà le contenu des différents fichier :
cExceptions:
cSessions:
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 class cExceptions extends Exception { /* * @name __contruct * Constructeur * */ public function __construct($msg=NULL, $code=0) { parent::__construct($msg, $code); } /* * @name ShowError * @return [ code]: message */ public function ShowError() { return '['.$this->code.']: ' . $this->getMessage(); } }
cHeaders.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 class cSessions { /* * @name isAuth * Vérifie si le membre est autehntifié */ public static function isAuth() { if (!isset($_SESSION['idMembres'])) { return true; } else { throw new cExceptions('Membre NOK',1); } } }
index.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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43 /* Initialisation d'une nouvelle session */ session_start(); /* Définition des constantes */ define (ROOT_DIR,'./'); define (APP,'Fédération de Speedminton'); /* Chargement des librairies */ require_once( ROOT_DIR . 'libs/Smarty/libs/Smarty.class.php' ); /* Chargement des classes */ if (!function_exists(__autoload)) { function __autoload($class_name) { require_once 'class/' . $class_name . '.php'; } } /* Vérifie si le membre est identifé */ try { $toto = cSessions::isAuth(); //echo $toto; } catch( cExceptions $e ) { //header('Location: login.php'); echo $e->ShowError(); exit(0); } /* Vérification du template à utiliser */ if (!isset($_GET['tpl'])) $_SESSION['tpl'] = 'default'; else $_SESSION['tpl'] = $_GET['tpl']; /* Initialisation du template */ if (!isset($template)){ $template = new Smarty(); /* Activation de la console de debugging de Smarty */ /* $template->debugging = true; */ $template->template_dir = ROOT_DIR . "templates/" . $_SESSION['tpl'] . "/"; $template->compile_dir = ROOT_DIR . "templates_c/" . $_SESSION['tpl'] . "/"; $template->cache_dir = ROOT_DIR . "cache/" . $_SESSION['tpl'] . "/"; $template->config_dir = ROOT_DIR . "configs/" . $_SESSION['tpl'] . "/"; }
login.php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 /* Initialisation d'une nouvelle session */ //session_start(); /* Chargement de toutes les classes et autres libs */ require_once( 'class/cHeaders.php' ); /* Assigne le titre de la page */ $template->assign('PAGE_TITRE', APP . ' - Espace membre'); /* Parse le contenu dans le template */ $template->display('index.tpl');
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 /* Initialisation d'une nouvelle session */ session_start(); /* Définition des constantes */ define (ROOT_DIR,'./'); define (APP,'Fédération de Speedminton'); /* Chargement des librairies */ require_once( ROOT_DIR . 'libs/Smarty/libs/Smarty.class.php' ); /* Vérification du template à utiliser */ if (!isset($_GET['tpl'])) $_SESSION['tpl'] = 'default'; else $_SESSION['tpl'] = $_GET['tpl']; /* Initialisation du template */ if (!isset($template)){ $template = new Smarty(); /* Activation de la console de debugging de Smarty */ /* $template->debugging = true; */ $template->template_dir = ROOT_DIR . "templates/" . $_SESSION['tpl'] . "/"; $template->compile_dir = ROOT_DIR . "templates_c/" . $_SESSION['tpl'] . "/"; $template->cache_dir = ROOT_DIR . "cache/" . $_SESSION['tpl'] . "/"; $template->config_dir = ROOT_DIR . "configs/" . $_SESSION['tpl'] . "/"; } /* Assigne le nom du template */ $template->assign('TPL',$_SESSION['tpl']); /* Assigne le titre de la page */ $template->assign('PAGE_TITRE', APP . ' - Identification'); /* Parse le contenu dans le template */ $template->display('login.tpl');
Partager