Il y a actuellement 353 visiteurs
Jeudi 26 Décembre 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: 9048
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: 9048
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: 9048
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 [Résolu] infection probable
Bonjour à tousalors voila, je pense être infecter par virus et ou malware, ou quelqu'un, depuis un bon moment j'ai des bannières qui viennent ce glisser et entrer sur mon écran à droite, elles apparaissent par 3 l'une sur l'autre, je peut les fermer, mais elles reviennent,principalement ca concerne ...
Réponses: 22

Message [résolu] Appels indésirables
Bonsoir? J'ai besoin d'aide, je n'en peux plus, mon portable est sur liste rouge, j'ai plusieurs appels par jour, d'un cabinet de santé, "santénéa", ils demandent à parler à ma femme, qui est décédée en octobre 2022, je ne comprends pas le lien entre mon numéro de portable et ma femme. ? J ...
Réponses: 27

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: 36

Message [Résolu] Récupération du dual boot
Bonjour,Pourriez-vous m'aider à remettre le dual boot" sur un pc portable HP modèle G7 1235 SF" qui a Windows 10 et Ubuntu 24.04 que j'ai installé dans " l'espace libre" du disque dur mais au démarrage c'est Ubuntu qui est démarre directement, comment faire ?J'aurai voulu garder ...
Réponses: 13

Message [résolu] Inscris à l'insu de mon plein gré
Bonjour J'ai un souci, qui m'énerve vraiment, ma fille m'a réglé une smart TV, pour que le Chromecast intégré fonctionne elle m'a créé un compte sur google. Presque sur chaque site, j'ai ceci :Sur le site TV loisir, je n'ai pas fait exprès, j'ai cliqué sur ok, au lieu de la croix, ça m'a créé un com ...
Réponses: 3

Message Partition inutilisée [Résolu]
Bonjour à tous !J'ai encore des lacunes (normal vu mon âge....):Après avoir fait du ménage sur mon disque SSD, il y reste Win 8 et Ubuntu 22.04 plus une partition de 6 Go que je voudrais utiliser pour y stocker des sauvegardes non critiques.Elle est nommée "Lost+found"Je ne peux pas avoir ...
Réponses: 3


Qui est en ligne

Utilisateurs parcourant ce forum: Bing [Bot] et 3 invités


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