IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

php et les classes. dur dur d'apprendre


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Profil pro
    Expert technique
    Inscrit en
    Septembre 2003
    Messages
    328
    Détails du profil
    Informations personnelles :
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert technique

    Informations forums :
    Inscription : Septembre 2003
    Messages : 328
    Points : 159
    Points
    159
    Par défaut php et les classes. dur dur d'apprendre
    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:
    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();
    		}
    	}
    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
     
    	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);
    			}
    		}
    	}
    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
    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'] . "/";
    	}
    index.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');
    login.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
    /* 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');

  2. #2
    Membre habitué
    Profil pro
    Expert technique
    Inscrit en
    Septembre 2003
    Messages
    328
    Détails du profil
    Informations personnelles :
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert technique

    Informations forums :
    Inscription : Septembre 2003
    Messages : 328
    Points : 159
    Points
    159
    Par défaut
    Bon, c'était juste un problème de logique avec une erreur dans le test de ma variable de session.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PHP 5.2] Documentation sur les classes internes PHP
    Par dychentrus dans le forum Langage
    Réponses: 5
    Dernier message: 10/12/2008, 13h55
  2. [POO] cherche tuto simple sur les classes php
    Par single dans le forum Langage
    Réponses: 4
    Dernier message: 29/04/2008, 01h07
  3. UBUNTO et les nouveaux disque durs
    Par lisegem dans le forum RedHat / CentOS / Fedora
    Réponses: 1
    Dernier message: 28/03/2008, 08h18
  4. Réponses: 4
    Dernier message: 28/10/2007, 20h01
  5. Réponses: 3
    Dernier message: 23/08/2004, 17h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo