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