Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour,
Je suis embété avec un petit problème, je vous explique brièvement :
Je développe un logiciel de gestion pour camping. J'aimerais n'avoir qu'a installer une seule fois mon application.
Chaque camping a ses fichiers de config propres (qui contiennent entre autre les informations du camping et les informations de la bd).
Mon application va être intégrée, ou du moins "reliée" à plusieurs sites de camping.
La question est la suivante :"comment savoir de quel camping je viens", question à laquelle je me suis répondu :
grâce aux $_session et aux variables post.
J'ai donc fait un plugIn qui va justement permettre de switcher entre les comtpes camping, et il s'avère que le tableau $_SESSION est vide.
D'ou ma question, est-ce que dans le pré dispatch, le tableau post est déjà initialisé ?
Merci.
voici mon plug in :
<?php class MyPluginComptes extends Zend_Controller_Plugin_Abstract{ /** * * Ce plug in permet de gérer la multitude de comptes camping. * Selon le site référant qui appelle le site resaCamp, le plugIn charge les * bonnes variables du compte : * les configs, * la base de données. * */ public function preDispatch(Zend_Controller_Request_Abstract $request) { Zend_Debug::dump($_SESSION); //si on recois une variable de type post if ($this->_request->isPost()) { //recuperation des infos du form $formData = $this->_request->getPost(); if(isset($formData['compteCamping'])&&($formData['compteCamping']!="")) { $compte=$formData['compteCamping']; $_SESSION["compteCamping"]=$compte; $this->initConfig($compte); } } //si la session est définie else if((isset($_SESSION["compteCamping"]))&&($_SESSION["compteCamping"]) ) { $compte=$_SESSION["compteCamping"]; $compte="localhost"; $this->initConfig('localhost'); } else { echo "tartempion"; //$this->_response->setRedirect('http://www.google.fr'); } } private function initConfig($compte) { //chargement du fichier de données $config = new Zend_Config_Ini( '/application/configs/'.$compte.'/config.ini','parametres'); /** * Configuration du site * */ $registry = Zend_Registry::getInstance(); $registry->set('config', $config); // Mise en place de la BDD try{ $db = Zend_Db::factory($config->db); $db->getConnection(); Zend_Db_Table::setDefaultAdapter($db); Zend_Registry::set('db', $db); }catch(Exception $e){ exit($e->getMessage()); $log->crit($e); } }
Hors ligne