Bonjour,
Je suis débutant en PHP, suite au tutoriel PHP, j'ai commencé mon projet d'un site web dynamique. J'ai organisé mon site suivant l'architecture MVC. J'ai un contrôleur frontal qui permet de contrôler et charger les pages demander via la fonction $_GET placé dans l'URL avec le nom de la section à charger.(exemple : index.php?section=livreOr)
Je suis en train de coder la page d'inscription. Pour tester mon code j'ai tout codé dans un seul fichier et cela fonctionne bien.
Mon problème arrive au moment où je sépare le code en plusieurs fichiers pour suivre l'architecture MVC. Les informations viennent d'un formulaire du type POST.
Voici le code complet:
Dans le code ci-dessus je sépare les différents éléments de la manière suivante.La connexion à la base de données est effectué par le controleur frontal via une fonction getBdd() placé dans le fichier modele/connexionBdd.php qui retourne la variable $bdd.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 <?php $bdd = new PDO('mysql:host=localhost;dbname=sonneur_du_lion;charset=utf8','root','',array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION)); function Inscription($groupe,$pseudo,$pass,$email) { global $bdd; $inscription=$bdd->prepare('INSERT INTO membre(id_groupe,pseudo,pass, email, date_inscription) VALUE(:id_groupe,:pseudo,:pass, :email, CURDATE())'); $inscription->execute(array( 'id_groupe'=>$groupe, 'pseudo'=>$pseudo, 'pass'=>$pass, 'email'=>$email, )); return $inscription; } $groupe=5; $pseudo = htmlspecialchars($_POST['pseudo']); $pass = htmlspecialchars($_POST['pass']); $email = htmlspecialchars($_POST['email']); $inscription=Inscription($groupe,$pseudo,$pass,$email); echo 'Inscription effectué';
Contrôleur frontal :
connexionBdd.php :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 <?php include_once('modele/connexionBdd.php'); $bdd = getBdd(); if (!isset($_GET['section']) OR $_GET['section']=='index') { include_once('controleur/index.php'); } else { require'controleur/'.$_GET['section'].'/index.php'; }
Ensuite je met la fonction Inscription($groupe,$pseudo,$pass,$email) dans le fichier modele/inscription/index.php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 <?php try { function getBdd() { $bdd = new PDO('mysql:host=localhost;dbname=sonneur_du_lion;charset=utf8','root','',array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION)); return $bdd; } } catch (Exception $e) { $msgErreur = $e->getMessage(); require 'vue/Erreur.php'; }
Voici le code une fois séparé:
J'obtient l'erreur suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 <?php require'modele/inscription/index.php'; $groupe=5; $pseudo = htmlspecialchars($_POST['pseudo']); $pass = htmlspecialchars($_POST['pass']); $email = htmlspecialchars($_POST['email']); $inscription=Inscription($groupe,$pseudo,$pass,$email); echo 'Inscription effectué';
Donc d'où vient le problème ?Warning: require(modele/inscription/index.php): failed to open stream: No such file or directory in D:\wamp\www\Les sonneurs du lion\controleur\inscription\traitement_2.php on line 5
Fatal error: require(): Failed opening required 'modele/inscription/index.php' (include_path='.;C:\php\pear') in D:\wamp\www\Les sonneurs du lion\controleur\inscription\traitement_2.php on line 5
Merci d'avance pour vos réponse.
Partager