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

Zend PHP Discussion :

Mettre en place un iframe dans une appli web en ZF-1


Sujet :

Zend PHP

  1. #1
    Membre confirmé
    Homme Profil pro
    dev. full stack
    Inscrit en
    Octobre 2016
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : dev. full stack
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Octobre 2016
    Messages : 89
    Par défaut Mettre en place un iframe dans une appli web en ZF-1
    Bonjour,

    J'aimerais mettre en place une iframe dans mes applications qui utilisent ZendFrameWork v1.
    J'ai déjà implémenté du code similaire pour mes appli web qui n'utilisent pas de Framework.
    Cette iframe contient une page PHP qui teste la connexion à la base de données (avec rafraichissement automatique toute les 5 minutes).

    Mais, je ne sais pas du tout comment faire.

    Code d'intégration de l'iframe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     <div id="appname"> <div align="right">DATA CIP</div>
                 <iframe id="DBMonitoring" height="25" width="190" align="right" FRAMEBORDER="0" scrolling=no NORESIZE src="dbmonitore.php"></iframe>
             </div>

    Ci-dessous, le code de la page (dbmonitore.php) que j'ai mis en place dans mes applis web sans framework.
    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
     
    <?php
    require_once("include.php");
     
    // Refresh each 5 minutes
    header("Refresh:300");
     
    if (session_status() === PHP_SESSION_NONE)
      session_start();
     
    date_default_timezone_set('Europe/Brussels');
     
    $dbauth=decrypt(LOGIN,PASSWORD);
     
    $dbstatus = "OK";
    if(!testDbConnexion($dbauth["user"],$dbauth["password"],DB,HOST))
      {
    	$dbstatus= "KO";
      }
     
    echo "<div style='color:#ffffff;'>Etat base de données : ".$dbstatus."</div>";
    ?>
    La fonction de test :

    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
     
    function testDbConnexion($user, $passwd, $base, $host )
    {
    	$dbOK = true;
     
    	/* @ est utilisé pour supprimer les avertissements */
    	$mysqli = @new mysqli($host,$user,$passwd, $base);
    	if ($mysqli->connect_errno)
    	{
    		$dbOK = false;
    	}
     
    	/* Close the connection as soon as it's no longer needed */
    	$mysqli->close();
     
    	return $dbOK;
    }
    Bref, je ne sais pas comment je peux faire l'équivalent en Zend.

  2. #2
    Membre confirmé
    Homme Profil pro
    dev. full stack
    Inscrit en
    Octobre 2016
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : dev. full stack
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Octobre 2016
    Messages : 89
    Par défaut Progression
    Je me suis fait un peu aidé (par une IA), mais voici ce que j'ai dev :

    Le controller qui fait le test de la base de données
    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
     
    <?php
     
    class DbmonitoreController extends BaseController
    {
     
    	public function init($title='BaseCollection')
    	  {
    		/* Initialize action controller here */
    		parent::init("Index");
    	  }
     
    	public function indexAction()
    	  {
    		parent::init('Home');
    		// Retrieve database parameters from the configuration
    		$dbParams = $this->getInvokeArg('bootstrap')->getOptions();
    		$dbAdapter = Zend_Db::factory($dbParams['resources']['db']['adapter'], $dbParams['resources']['db']['params']);
     
    		// Test the database connection
    		$dbStatus = $this->testDatabaseConnection($dbAdapter);
     
    		// Pass the database status to the view
    		$this->view->dbStatus = $dbStatus;
     
    		// Render the view script
    		$this->render('index');
    	  }
     
    	private function testDatabaseConnection($dbAdapter)
    	{
    		try {
    			$dbAdapter->getConnection();
    			return "Etat base de données : OK";
    		} catch (Exception $e) {
    			// return "Database connection failed: " . $e->getMessage();
    			return "Etat base de données : KO ";
    		}
     
    	}
     
     
     
     
    }
    Un index.phtml dans la partie view (view\dbmonitore\index.phtml)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <?php
     
    // Refresh each 5 minutes
    header("Refresh:300");
     
    // Do database connection
    echo $this->escape($this->dbStatus);
    ?>
    L'appel en iframe dans layout.phtml

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <div id="appname">
                <div align="right"><?= $this->appname ?></div>
                <iframe id="DBMonitoring" height="25" width="190" align="right" FRAMEBORDER="0" scrolling=no NORESIZE src="<?= $this->baseUrl()?>/dbmonitore"></iframe>
    		</div>
    Mais, j'ai deux problèmes :

    • la page générée contient tout le code d'une page normal (header, ...)

    • J'ai une erreur : <h3>Exception information:</h3>
      <p>
      <b>Message:</b> Adapter parameters must be in an array or a Zend_Config object </p>

      <h3>Stack trace:</h3>
      <pre>#0 /mnt/www/public/etiweb/application/controllers/DbmonitoreController.php(17): Zend_Db::factory(NULL, NULL)
      #1 /mnt/www/lib/zf1-future-release-1.22.0/library/Zend/Controller/Action.php(516): DbmonitoreController->indexAction()
      #2 /mnt/www/lib/zf1-future-release-1.22.0/library/Zend/Controller/Dispatcher/Standard.php(308): Zend_Controller_Action->dispatch('indexAction')
      #3 /mnt/www/lib/zf1-future-release-1.22.0/library/Zend/Controller/Front.php(954): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http))
      #4 /mnt/www/lib/zf1-future-release-1.22.0/library/Zend/Application/Bootstrap/Bootstrap.php(106): Zend_Controller_Front->dispatch()
      #5 /mnt/www/lib/zf1-future-release-1.22.0/library/Zend/Application.php(400): Zend_Application_Bootstrap_Bootstrap->run()
      #6 /mnt/www/public/etiweb/public/index.php(35): Zend_Application->run()
      #7 {main} </pre>

  3. #3
    Membre confirmé
    Homme Profil pro
    dev. full stack
    Inscrit en
    Octobre 2016
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : dev. full stack
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Octobre 2016
    Messages : 89
    Par défaut
    Le second probème est résolu, j'ai copié/coller ce qu'écrivait l'IA et pas ce qui était dans le bootstrap.
    En reprenant ce qui était dans le bootstrap, cela fonctionne mieux

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $dbAdapter = Zend_Db::factory($dbParams['db']['adapter'], $dbParams['db']['params']);

  4. #4
    Membre confirmé
    Homme Profil pro
    dev. full stack
    Inscrit en
    Octobre 2016
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : dev. full stack
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Octobre 2016
    Messages : 89
    Par défaut
    Pour le premier problème, il fallait juste mettre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     $this->_helper->layout()->disableLayout();

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

Discussions similaires

  1. Mettre en place des sections dans une ListView
    Par anto2b dans le forum Composants graphiques
    Réponses: 10
    Dernier message: 20/02/2013, 16h28
  2. Charger le contexte d'application dans une appli WEB
    Par nanou2002 dans le forum Spring Web
    Réponses: 3
    Dernier message: 13/10/2006, 10h44
  3. [Tomcat]Où mettre les fichiers properties dans une appli web
    Par tchouki dans le forum Tomcat et TomEE
    Réponses: 11
    Dernier message: 31/01/2006, 17h32
  4. [JAR]Probleme pour inclure un jar dans une appli Web
    Par ouedmouss dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 09/12/2005, 09h40
  5. [JSP] liste de fichiers dans une appli web
    Par cyrso dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 21/01/2005, 17h17

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