Code PHP stocké en BDD MySQL à réintégrer

Résolu/Fermé
Ninja_En_Short Messages postés 133 Date d'inscription mercredi 19 septembre 2007 Statut Membre Dernière intervention 27 juin 2014 - 5 juil. 2012 à 22:14
Ninja_En_Short Messages postés 133 Date d'inscription mercredi 19 septembre 2007 Statut Membre Dernière intervention 27 juin 2014 - 6 juil. 2012 à 19:14
Bonjour,

Comme le titre peut le laissé penser j'ai du code PHP que j'ai stocké dans la BDD MySQL, ceci pour developper un petit CMS pour mes sites (je sais y en a plein mais je veux mon mien).
Mon soucis (et je oui je sais MySQL ne recrache que du texte bête et méchant) c'est qu'une fois le texte du code récupérer je n'arrive pas à le faire interpréter (je tourne avec un easyphp en ce moment).

Il est vrai que j'utilise probablement mal eval() mais je n'arrive vraiment pas à faire marcher ce truc donc j'ai besoin d'un coup de main.

Merci

Code pour le morceau à afficher :

<?php
	include_once ('./class/bdd.php');
	include_once ('./class/page.php');	
?>

<table width="100%">
	<tr>
		<td>
			Colonne gauche
		</td>
		<td>
			Colonne centre<br/><br/>
			
			<?php
				if(isset($_GET['page']) && $_GET['page'] != "")
				{
					echo "Variable GET page :".$_GET['page']."<br/><br/>";
					$page->display_content($_GET['page']);
				}
				else
				{
					echo "Page d'accueil<br/><br/>";
					$page->display_content('1');
				}
			?>
		</td>
		<td>
			Colonne droite
		</td>
	</tr>
</table>


Les fonctions qui s'en chargent (display_template et display_content) :

<?php
	include_once ('bdd.php');
	include_once ('cookie.php');
	include_once ('session.php');

	class Page
	{
		public $title;
		public $html_version;
		public $meta;
		public $charset;
		public $css;
		public $lang;
		public $template;
		public $layout;
		
		/*******************************************
		*
		* $page doit être un id de page en BDD
		*
		*******************************************/
		
		function display_template($page=NULL)
		{ // BEGIN function content
			$bdd = new Bdd ();
			
			if (isset($page) && $page != "")
			{
				$query = 'SELECT * FROM pages WHERE id_page='.$page;
					echo $query."<br/><br/>";
					$data = $bdd->get_data($query);
					
					if(isset($data['template']) && $data['template'] != "")
					{
						echo $data['template'];
					}
					else
					{
						echo "FATAL ERROR : template requis";
					}
			}else{
				echo "page par defaut";
				$this->display_template('1');
			}
		} // END function content
		
		function display_content($page=NULL)
		{ // BEGIN function content
			$bdd = new Bdd ();
			
			if (isset($page) && $page != "")
			{
				try
				{
					$query = 'SELECT * FROM pages WHERE id_page='.$page;
					// echo $query."<br/><br/>";
					$data = $bdd->get_data($query);
					eval($data['content']);
				}
				catch (Exception $e)
				{
					die('Error : '.$e->getMessage());
				}
			}else{
				// echo "page par defaut";
				try
				{
					
					// include_once('./template/welcome.php');
				}
				catch (Exception $e)
				{
					// die('Error : '.$e->getMessage());
				}
			}
		} // END function content
		
		function get_basics()
		{
			$bdd = new Bdd ();
			$query = "SELECT * FROM site_basics";
			$data = $bdd->get_data($query);
			
			/********************************************************************
			* Colonnes tableau renvoyé : 
			*	id_basics : id de ligne
			*	title : title affihcé par le navigateur
			*	html_version : version HTML utilisée
			*	meta (à répartir en tableau) : toutes les meta sauf le charset
			*	charset : charset utilisé
			*	css : chemin vers le css
			*	language : langue affichée
			*	layout : chemin vers le layout courant
			*	css_version : version CSS utilisée
			********************************************************************/
			
			$this->title = $data['title'];
			$this->html_version = $data['html_version'];
			$this->charset = $data['charset'];
			$this->css = $data['css'];
			$this->lang = $data['language'];
			$this->layout = $data['layout'];
			$this->css_version = $data['css_version'];
			
			$meta_array = explode("-", $data['meta']);
			$this->meta = $meta_array;
		}
	}

?>


Et le code source que me renvoie la page :



<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">



<!--Richtext Javascript-->

<script src="http://js.nicedit.com/nicEdit-latest.js" type="text/javascript"></script>

<script type="text/javascript">bkLib.onDomLoaded(nicEditors.allTextAreas);</script>



<html>

	<head lang="fr">

		<title>Test CMS</title>

		<link rel="stylesheet" href="./css/default.css" />

		<meta charset="utf-16" />

		<meta name="description" content="Free Web tutorials">

<meta name="keywords" content="HTML,CSS,XML,JavaScript">

<meta name="author" content="Guillaume Doriat">	</head>

	<body>

	

		

<table width="100%">

	<tr>

		<td>

		</td>

		<td width="1280px" class="content_zone">

			Page d'accueil<br/><br/>SELECT * FROM pages WHERE id_page=1<br/><br/><?php

	include_once ('./class/bdd.php');

	include_once ('./class/page.php');	

?>



<table width="100%">

	<tr>

		<td>

			Colonne gauche

		</td>

		<td>

			Colonne centre<br/><br/>

			

			<?php

				if(isset($_GET['page']) && $_GET['page'] != "")

				{

					echo "Variable GET page :".$_GET['page']."<br/><br/>";

					$page->display_content($_GET['page']);

				}

				else

				{

					echo "Page d'accueil<br/><br/>";

					$page->display_content('1');

				}

			?>

		</td>

		<td>

			Colonne droite

		</td>

	</tr>

</table>		</td>

		<td>

		</td>

	</tr>

</table>		

	</body>

</html>



Donc avec le PHP stocké en BDD pas du tout interprété...
A voir également:

1 réponse

Ninja_En_Short Messages postés 133 Date d'inscription mercredi 19 septembre 2007 Statut Membre Dernière intervention 27 juin 2014 9
6 juil. 2012 à 19:14
Non en fait c'est bon je me suis rendu compte que ça servait à rien de faire comme ça du coup j'ai refait le code pour charger un fichier PHP normal.
0