Modèle Vue Contrôle aucun affichage ou erreur
Posté : 30 juin 2011, 08:50
Bonjour a tous,
Bien qu'aillant déjà posé ma question par ailleurs sans que d'aucuns ne puissent m'aider je me risque à demander de l'aide sur phpFrance en espérant que des passionnés répondront favorablement à ma demande.
Je veux créer un blog selon la nomenclature Modèle Vue Contrôle ( MVC ). J'ai donc une base de donnée créée dans easyphp/mysql mais quand je teste avec Easyphp à la racine www en cliquant sur blog.php qui est mon contrôleur global rien ne s'affiche si ce n'est le titre de mon blog.
Voici l'arborescence de mon site :ARBORESCENCE
On constatera que j'ai à ma racine sur Easyphp www -> blog.php qui est mon contrôleur global et dont le script est le suivant :
- le répertoite modèle qui contient un répertoire blog qui contient lui même :
un fichier connexion_sql.php dont le script est le suivant :
un fichier css qui ne saurait avoir d'incidence sur le fonctionnement de mon site à proprement parlé donc inutile que je présente ici le script et
un fichier index.php dont le script est le suivant :
- le répertoire contrôleur qui contient un répertoire blog qui contient :
un fichier index.php dont le script est le suivant :
Warning: include_once(modele/blog/get_billets.php) [function.include-once]: failed to open stream: No such file or directory in C:\Program Files\EasyPHP-5.3.6.0\www\controleur\blog\index.php on line 3
Warning: include_once() [function.include]: Failed opening 'modele/blog/get_billets.php' for inclusion (include_path='.;C:\php\pear') in C:\Program Files\EasyPHP-5.3.6.0\www\controleur\blog\index.php on line 3
Fatal error: Call to undefined function get_billets() in C:\Program Files\EasyPHP-5.3.6.0\www\BLOG\controleur\blog\index.php on line 5
Soit dit il ne reconnaît pas où ne trouve pas le chemin que je spécifie dans mon include_once à savoir ('modele/blog/get_billets.php'); alors même que le fichier existe et se trouve à l'endroit spécifié. ce qui fait je suppose à tort ou à raison qu'il ne peut pas afficher mes billets lorsque je clique à la racine de mon site sur mon contrôleur global soit blog.php qui ne peut qu'afficher le titre de mon blog.
Merci à tout passionné d'essayer peut-être le script pour voir s'il fonctionne correctement avec eux ou tout simplement maîtrisant pleinement le php me dire où je pêche. Merci beaucoup pour votre aide. Je suis à mon 5ème forum pour demander de l'aide. Merci beaucoup.
Bien qu'aillant déjà posé ma question par ailleurs sans que d'aucuns ne puissent m'aider je me risque à demander de l'aide sur phpFrance en espérant que des passionnés répondront favorablement à ma demande.
Je veux créer un blog selon la nomenclature Modèle Vue Contrôle ( MVC ). J'ai donc une base de donnée créée dans easyphp/mysql mais quand je teste avec Easyphp à la racine www en cliquant sur blog.php qui est mon contrôleur global rien ne s'affiche si ce n'est le titre de mon blog.
Voici l'arborescence de mon site :ARBORESCENCE
On constatera que j'ai à ma racine sur Easyphp www -> blog.php qui est mon contrôleur global et dont le script est le suivant :
<?php
include_once('modele/connexion_sql.php');
if(!isset($_GET['section']) OR $_GET['section']=='index')
{
include_once('controleur/blog/index.php');
}
puis 3 répertoires soit :- le répertoite modèle qui contient un répertoire blog qui contient lui même :
un fichier connexion_sql.php dont le script est le suivant :
<?php
//connexion à la base de donnée
try
{
$bdd= new PDO('mysql:host=localhost;dbname=news','root','');
}
catch(Exception $e)
{
die('Erreur:'.$e->getMessage());
}
un fichier get_billets.php dont le script est le suivant :<?php
function get_billets($offset,$limit)
{
global $bdd;
$offset=(int)$offset;
$limit=(int)$limit;
$req=$bdd->prepare('SELECT id_billet, titre, contenu, DATE_FORMAT(date_creation,\'%d/%m/%Y à %Hh%imin%ss\') AS
date_creation_fr FROM billets
ORDER BY date_creation DESC LIMIT :offset,:limit');
$req->bindParam(':offset',$offset, PDO::PARAM_INT);
$req->bindParam(':limit',$limit,PDO::PARAM_INT);
$req->execute();
$billets=$req->fetchAll();
return $billets;
}
-le répertoire vue qui contient un répertoire blog qui contient :un fichier css qui ne saurait avoir d'incidence sur le fonctionnement de mon site à proprement parlé donc inutile que je présente ici le script et
un fichier index.php dont le script est le suivant :
<DOCTYPE html PUBLIC"-//W3C//DTD XHTML 1.0 Strict/EN""http://www.w3.org
/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
<head>
<title>TITRE</title>
<meta http-equiv="Content-Type" content="text/html";
charset=iso-8859-1'/>
<link href="vue/blog/style.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<h1>TITRE</h1>
<?php
foreach($billets as $cle=> $billet)
{
?>
<div class="news">
<h3>
<?php echo $billet[$cle]['titre'];?>
<em>le <?php echo $billet[$cle]['date_creation_fr'];?></em>
</h3>
<p>
<?php echo $billet[$cle]['contenu'];?>
<br/>
<em><a href="commentaires.php?billet=<?php echo $billet[$cle]['id_billet'];?>">
Commentaires</a></em>
</p>
</div>
<?php
}
?>
</body>
</html>
- le répertoire contrôleur qui contient un répertoire blog qui contient :
un fichier index.php dont le script est le suivant :
<?php
//on demande les cinq derniers billets(modèle)
include_once('modele/blog/get_billets.php');
$billets = get_billets(0,5);
//On effectue du traitement sur les données (contrôleur)
//Ici on doit surtout sécuriser l'affichage
foreach($billets as $cle=>$billet)
{
$billet[$cle]['titre']=htmlspecialchars($billet['titre']);
$billet[$cle]['contenu']=nl2br(htmlspecialchars($billet['contenu']));
}
//On affiche la page (vue)
include_once('vue/blog/index.php');
Pour vérifier si je n'avais pas de problème dans mes fichiers autre que blog.php j'ai cliqué dans mon répertooire contrôleur/blog/ et ai constaté le message suivant :Warning: include_once(modele/blog/get_billets.php) [function.include-once]: failed to open stream: No such file or directory in C:\Program Files\EasyPHP-5.3.6.0\www\controleur\blog\index.php on line 3
Warning: include_once() [function.include]: Failed opening 'modele/blog/get_billets.php' for inclusion (include_path='.;C:\php\pear') in C:\Program Files\EasyPHP-5.3.6.0\www\controleur\blog\index.php on line 3
Fatal error: Call to undefined function get_billets() in C:\Program Files\EasyPHP-5.3.6.0\www\BLOG\controleur\blog\index.php on line 5
Soit dit il ne reconnaît pas où ne trouve pas le chemin que je spécifie dans mon include_once à savoir ('modele/blog/get_billets.php'); alors même que le fichier existe et se trouve à l'endroit spécifié. ce qui fait je suppose à tort ou à raison qu'il ne peut pas afficher mes billets lorsque je clique à la racine de mon site sur mon contrôleur global soit blog.php qui ne peut qu'afficher le titre de mon blog.
Merci à tout passionné d'essayer peut-être le script pour voir s'il fonctionne correctement avec eux ou tout simplement maîtrisant pleinement le php me dire où je pêche. Merci beaucoup pour votre aide. Je suis à mon 5ème forum pour demander de l'aide. Merci beaucoup.