Il y a actuellement 87 visiteurs
Vendredi 30 Juillet 2021
accueilactualitésdossierscomparer les prixtélécharger gratuitement vos logicielsoffres d'emploiforum informatique
Connexion
Créer un compte

Modèle Vue Contrôle aucun affichage ou erreur [Résolu]

Besoin d'aide pour configurer un serveur ? Vous souhaitez obtenir des conseils pour référencer votre site ? Un petit souci pour accéder à votre FTP ? Des soucis de programmation en PHP / ASP / HTML / XHTML / XML / XSLT / CSS / ReactJS / AngularJS / VueJS / CGI / PERL / C / MySQL / PostgreSQL ??? Nous avons peut-être la solution dans ce forum ...

Modèle Vue Contrôle aucun affichage ou erreur [Résolu]

Message le 26 Juin 2011 09:59

Bonjour,
Bien qu'ayant déjà posé ma question par ailleurs sans que d'aucuns ne parviennent à m'aider, je réitère ici ma demande dans l'espoir que quelq'un daigne me venir en aide en le remerciant par avance car je tourne en rond.

Je veux créer un blog en php mais selon la nomenclature Modèle, Vue, Contrôleur (MVC). Lorsque que je teste mon site avec easyphp avec mon contrôleur global blog.php aucun billet ne s'ffiche si ce n'est le titre de mon blog.

En cliquant sur ARBORESCENCE on constatera que la structure de mon site est la suivante :

a la racine www j'ai blog.php qui est mon contrôleur global

puis j'ai trois répertoires a savoir :

- Répertoire modele qui contient un répertoire blog qui contient :
le ficher get_billet.php
le fichier connexion_sql.php

- Répertoire vue qui contient un répertoire blog qui contient :
un fichier index.php
le fichier style.css

- Répertoire controleur qui contient un répertoire blog qui contient :
un fichier index.php

Pour voir s'il n'y a pas un problème par ailleurs je suis allé dans mon répertoire controleur et ai cliqué sur blog contenant un index.php qui me donne ce message d'erreur :

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\controleur\blog\index.php on line 5


Puis j'ai cliqué dans mon répertoire vue sur blog qui contient lui aussi un index.php et j'obtiens ce message d'erreur :

Notice: Undefined variable: billets in C:\Program Files\EasyPHP-5.3.6.0\www\vue\blog\index.php on line 15

Warning: Invalid argument supplied for foreach() in C:\Program Files\EasyPHP-5.3.6.0\www\vue\blog\index.php on line 15


Voici les scripts de mes fichiers :

A racine WWW

Script fichier blog.php

Code: Tout sélectionner
<?php
include_once('modele/blog/connexion_sql.php');
if(!isset($_GET['section']) or  $_GET['section']=='index')
{
include_once('controleur/blog/index.php');

}



REPERTOIRE MODELE/BLOG/

script fichier get_billets.php

Code: Tout sélectionner
<?php
function get_billets($offset,$limit)
{
global $bdd;
$offset=(int)$offset;
$limit=(int)$limit;

$req=$bdd->prepare('SELECT id, 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;
}


script fichier connexion_sql.php

Code: Tout sélectionner
<?php
//connexion à la base de donnée
try
{
   $bdd= new PDO('mysql:host=localhost;dbname=news','root','');
}
catch(Exception $e)
{
   die('Erreur:'.$e->getMessage());
}
?>


REPERTOIRE VUE/BLOG/

script fichier index.php


Code: Tout sélectionner
<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  $billet)
{
?>
<div class="news">
<h3>
   <?php echo $billet['titre'];?>
   <em>le <?php echo $billet['date_creation_fr'];?></em>
</h3>

<p>
<?php echo $billet['contenu'];?>
<br/>
<em><a href="commentaires.php?billet=<?php echo $billet['id'];?>">
Commentaires</a></em>
</p>
</div>
<?php
}
?>
</body>
</html>


REPERTOIRE CONTROLEUR/BLOG/

script fichier index.php

Code: Tout sélectionner
<?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 $billet)

{
   $billet['titre']=htmlspecialchars($billet['titre']);
   $billet['contenu']=nl2br(htmlspecialchars($billet['contenu']));
}

//On affiche la page (vue)
include_once('vue/blog/index.php');


Si une âme charitable pouvait m'aider à résoudre le problème ce serait formidable.

<config>Windows 7 / Internet Explorer 9.0</config>
Eclesiae
Visiteur
Visiteur
 
Messages: 9
Inscription: 26 Juin 2011 08:36
 


Re: Modèle Vue Contrôle aucun affichage ou erreur

Message le 27 Juin 2011 08:01

Je sais pas trop d'ou vient le problème mais ça c'est normal :
Eclesiae a écrit:je suis allé dans mon répertoire controleur et ai cliqué sur blog contenant un index.php qui me donne ce message d'erreur :
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\controleur\blog\index.php on line 5

... logique puisque le chemin relatif de l'include n'est pas/plus bon ici, on cherche un www/controleur/blog/modele/blog/get_billets.php qui n'existe pas bien entendu.
Eclesiae a écrit:Puis j'ai cliqué dans mon répertoire vue sur blog qui contient lui aussi un index.php et j'obtiens ce message d'erreur :
Notice: Undefined variable: billets in C:\Program Files\EasyPHP-5.3.6.0\www\vue\blog\index.php on line 15
Warning: Invalid argument supplied for foreach() in C:\Program Files\EasyPHP-5.3.6.0\www\vue\blog\index.php on line 15

Même réponse, get_billets n'étant pas déclaré, le reste s'enchaine faux...

Le problème, si problème il y a, doit être ailleurs... dans le code même.
Libérez-vous : http://www.debian.org
Nobody knows what sysadmin does... until he stops doing it
Avatar de l'utilisateur
CaSa
PC-Infopraticien
PC-Infopraticien
 
Messages: 8978
Inscription: 13 Mai 2003 16:32
Localisation: Sisteron... et jamais loin d'une Debian
 

Re: Modèle Vue Contrôle aucun affichage ou erreur

Message le 27 Juin 2011 09:50

Bonjour Casa,

Merci de te pencher sur mon code. J'ai beau cherché où est la faille je ne la trouve pas. Normalement en cliquant à la racine de mon site soit sur blog.php mes billets devraient s'afficher mais tel n'est pas le cas. Alors je patauge... Si quelqu'un pouvait essayer mon code avec easyphp et voir si c'est moi qui pêhce ou le code ce serait formidable.

Merci beaucoup pour ton aide CaSa.
Eclesiae
Visiteur
Visiteur
 
Messages: 9
Inscription: 26 Juin 2011 08:36
 

Re: Modèle Vue Contrôle aucun affichage ou erreur

Message le 28 Juin 2011 08:02

Ben y' un truc tout bête en codage pour chercher ce qui ne se fait pas... ça s'appelle les "mouchards" :-)

Tu commences par mettre des mouchards dans tes fichiers pour voir où ça passe et si ça y passe...
Commence par mettre un
Code: Tout sélectionner
echo "nom du fichier php";
dans chacun de tes fichiers php pour contrôler que le code est bien appelé. Ensuite, quand tu en es sûr, tu descends au niveau des fonctions et/ou des boucles en mettant des
Code: Tout sélectionner
echo "fonction truc";
ou
echo "boucle machin";

C'est comme ça que tu verras ce qui foire, un test qui se fait mal, un appel qui ne se fait pas, etc...

ps : quand tu exécutes le code "blog", les mouchards seront visibles et contrôlables en affichant le code source de la page. (CTRL+U sous firefox)
Libérez-vous : http://www.debian.org
Nobody knows what sysadmin does... until he stops doing it
Avatar de l'utilisateur
CaSa
PC-Infopraticien
PC-Infopraticien
 
Messages: 8978
Inscription: 13 Mai 2003 16:32
Localisation: Sisteron... et jamais loin d'une Debian
 

Re: Modèle Vue Contrôle aucun affichage ou erreur

Message le 30 Juin 2011 09:17

Bonjour CaSa,

j'ai mis le mouchard comme tu le dis et chacun de mes fichiers est appelé. Le fichier ('modele/blog/get_billets.php') est bien appelé mais par la suite il affiche cette erreur :

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.

Si je ne m'abuse c'est la fonction $billets = get_billets(0,5) qu'il considère comme une erreur. Comment puis-je y remédier.

Merci pour ton aide.
Eclesiae
Visiteur
Visiteur
 
Messages: 9
Inscription: 26 Juin 2011 08:36
 

Re: Modèle Vue Contrôle aucun affichage ou erreur

Message le 30 Juin 2011 12:15

Tu as bien mis un mouchard en entête de get_billet.php et ton mouchard est bien affiché ?

Je ne vois pas trop pourquoi, dans le fichier index.php, l'include se ferait bien sans que la fonction get_billets() soit déclarée et/ou visible après.
Dans le doute, copie/colle carrément le code de get_billets.php à la place de ton include dans le fichier index.php pour voir si l'erreur est toujours là.
Libérez-vous : http://www.debian.org
Nobody knows what sysadmin does... until he stops doing it
Avatar de l'utilisateur
CaSa
PC-Infopraticien
PC-Infopraticien
 
Messages: 8978
Inscription: 13 Mai 2003 16:32
Localisation: Sisteron... et jamais loin d'une Debian
 

Re: Modèle Vue Contrôle aucun affichage ou erreur

Message le 30 Juin 2011 18:23

Bonsoir CaSa,

En collant mon script get_billets.php à la place de mon include je n'ai pas d'erreur mais je n'ai toujours pas mes billets. Merci pour ton aide.
Eclesiae
Visiteur
Visiteur
 
Messages: 9
Inscription: 26 Juin 2011 08:36
 

Re: Modèle Vue Contrôle aucun affichage ou erreur

Message le 08 Juil 2011 16:19

Bonjour, mon problème est résolu. Il y avait une erreur dans ma bdd. Merci pour votre précieuse aide.
et merci à CaSa :wink:
Eclesiae
Visiteur
Visiteur
 
Messages: 9
Inscription: 26 Juin 2011 08:36
 

Re: Modèle Vue Contrôle aucun affichage ou erreur

Message le 08 Juil 2011 18:13

Tant mieux, je passe ton sujet en résolu !
En cas de problème constaté sur un sujet, contactez un modérateur par MP. N'intervenez pas vous-même. Merci bien.
Aucune aide ni support ne sera fourni par MP.
Avatar de l'utilisateur
H3bus
Moderateur
Moderateur
 
Messages: 12195
Inscription: 08 Avr 2008 15:13
Localisation: /home/h3bus
 

Re: Modèle Vue Contrôle aucun affichage ou erreur [Résolu]

Message le 08 Juil 2011 19:03

Merci H3bus :wink:
Eclesiae
Visiteur
Visiteur
 
Messages: 9
Inscription: 26 Juin 2011 08:36
 



Sujets similaires

Message Erreur de connexion radio à radio.
Parfois, lorsque vous utilisez votre radio satellite numérique, vous recevez un message indiquant qu'une erreur s'est produite lors de la connexion de la radio à la radio. Quel est ton occupation? La première chose à faire est de mettre sous tension, de vérifier la batterie et de s'assurer que l'ant ...
Réponses: 2

Message [Résolu] Veille disque dur externe / Port usb
Bonjour à tous,A chaque fois que je branche un disque dur externe celui-ci s'éteint automatiquement au bout de quelques minutes de non utilisation et se rallume dès utilisation. Cela le fait sur 2 DD externes différents. Pourtant, la mise en veille des ports usb pour économiser l'énergie est désacti ...
Réponses: 4

Message Problème d’affichage 2e écran et tablette graphique
Bonjour à tous,Le problème est le suivant, j?ai besoin de travailler sur 2 écrans et sur une tablette graphique, le câble de mon 2e écran est en HDMI et ma tablette également. Ne possédant qu?une connectique en HDMI sur ma tour j?ai donc acheté un adaptateur HDMI pour double HDMI histoire de faire f ...
Réponses: 0

Message [résolu] gimp-> gThumb
Bonjour Je voudrais pouvoir imprimer plusieurs photos sur les mêmes feuilles, ça fait plusieurs jours que je tourne en rond avec gimp sans succès, j'ai suivi plusieurs topics du net mais je n'arrive pas à avoir la même chose. Merci
Réponses: 7

Message [résolu] numéro de portable
Bonjour mes parents n'ont jamais eu de portable, ils se sont décidés hier. Savez vous combien de temps il faut pour qu'ont leur mette en route leur numéro ? C'est à la poste mobile, donc sfr. Il n'y a aucune réponse sur gogole, ce n'est que pour la portabilité, forcément qui n'a pas de portable.. ...
Réponses: 7

Message [Réglé] Erreur BCD
Bonjour,Pourriez-vous m'aider au sujet d'une erreur dans écran bleu indiquant "bcd 0xc0000034" sur un pc de bureau packard bell imedia s 2110 sous Windows 8 ?Comment dois-je faire pour réparer le démarrage car je n'arrive pas et je ne retrouve pas d'image iso afin de réinstaller car le p ...
Réponses: 18


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 2 invités


.: Nous contacter :: Flux RSS :: Données personnelles :.