Il y a actuellement 215 visiteurs
Samedi 04 Mai 2024
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.
Avatar de l'utilisateur
CaSa
PC-Infopraticien
PC-Infopraticien
 
Messages: 9041
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)
Avatar de l'utilisateur
CaSa
PC-Infopraticien
PC-Infopraticien
 
Messages: 9041
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à.
Avatar de l'utilisateur
CaSa
PC-Infopraticien
PC-Infopraticien
 
Messages: 9041
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 !
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 Message d'erreur 0x00007FFBD38E3ACA
Bonjour à tous et à toutes, malgré qu'ayant déjà résolu le problème vu qu'il ne s'affiche plus, j'aimerais savoir si possible de la part de quelqu'un de compétent, comment est arrivé ce message d'erreur. ( si possible )Et si il y a quelque chose à faire concernant ce problème. ( si ça reviens un jou ...
Réponses: 5

Message Contrôle J'tenique Moto !
J'angoisse car ma petite vieille a 24 ans et 106 000 KmsTu dois t'en occuper comme d'une vraie petite reine, alors ça va le faire ! Sinon, t'as pas le choix, c'est la suite logique du racket "Contrôle Technique Auto", épicétou.tous Dekra pules, les autres aussi d'ailleurs, bon sang mais ...
Réponses: 10

Message [Résolu] comment utiliser opera
Bonjour J'ai installé opera, je n'arrive pas à le mettre en français ? Il y a aussi la page d'accueil qui me gêne, pleine de petites fenêtres qui ne m'intéressèrent pas. Merci
Réponses: 17

Message [Réglé] TPM Erreur - Migration Win 10 à Win 11
Bonjour à tous.Je suis en train de voir comment mettre à jour mon W10 en W11 et je vois que ce n'est pas possible.Grâce au lieu de Routman54, j'ai pu voir que le blocage se fait à cause du TPM.Je n'ai pas la moindre idée de ce que c'est...Je me tourne donc vers vous pour quérir le savoir manquant :3 ...
Réponses: 2

Message [Résolu] Impossible lancer Windows défender hors ligne WIN10
Salut à vous j'ai voulu lancer Windows Defender hors ligne et malgré plusieurs tentatives et démarrages, il ne se passe rien je suis allé sur mon disque dur C où est installé Windows Defender et puis sur offline j'ai cliqué sur en administrateur : OfflineScannerShellet voici le message Je précis ...
Réponses: 64

Message [Réglé] erreur 0x000428
Bonjour j'ai acheté un écran (ASUS TUF Gaming VG279Q1A - Ecran PC Gamer eSport 27" FHD - Dalle IPS - 165Hz - 1ms - 1920x1080) pour le pc de mon fiston (Ryzen 5 3600 / RTX 2070 Super / alim corsair 650 Watts / 16 Go de ram) sous Windows 10 pro et au bout d'une demie heure le pc a planté et au re ...
Réponses: 18


Qui est en ligne

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


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