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:

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é';
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.

Contrôleur frontal :

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';
    }
connexionBdd.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';
    }
Ensuite je met la fonction Inscription($groupe,$pseudo,$pass,$email) dans le fichier modele/inscription/index.php
Voici le code une fois séparé:

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é';
J'obtient l'erreur suivant :

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
Donc d'où vient le problème ?

Merci d'avance pour vos réponse.