Bonjour à tous,
Je suis occupé à apprendre MVC.
Un étudiant m'a fait une démo cet après-midi, je voudrais savoir ce que vous pensez de sa façon d'utiliser le MVC et surtout savoir si cela vous semble correct ?
1) Il me dit que "index.php" correspond au controler, est-ce correct ?
2) voici le code de index.php :
Voici le code de la page fonctionsHTML.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
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 <?php session_start(); #les variables globales require('./includes/VariablesGlobales.php'); # Fonctions BD et Fonctions Métier require('./includes/fonctionsDB.php'); # Fonctions qui génèrent de l'HTML # Elles seront appelées dans le contrôleur principal (index.php) et/ou ses actions (les autres modules) tous revient vers index require('./includes/fonctionsHTML.php'); // Connexion à la base de donnée try { $dbh = connexionDB(); } catch (PDOException $e) { erreur(1); } # Constructions des éléments HTML communs à toutes les vues $header = header_page($titre, $css); //$titre et $css se trouvent dans variables_gloabes.php $menu = menu(); $footer = footer_page($email); $modules = array('login','accueil','inscription','salles','reserver','erreur'); // Quelle action est demandée par l'utilisateur dans l'URL ? if (isset($_GET['module']) && in_array($_GET['module'],$modules)) { # Inclusion du code contrôleur correspondant à l'action demandée require('./modulles/' . $_GET['module'] . '.php'); } else { # Inclusion du code contrôleur de la page d'accueil require('./modules/accueil.php'); } ?>
et voici le code de la page inscription.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
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85 <?php # Fonction qui renvoie le code HTML de l'en-tête de toutes les pages function header_page($titre, $css) { $header =""; $header.="<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\" \"http://www.w3.org/TR/html4/strict.dtd\">"; $header.="<html>\n"; $header.="<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\" >\n"; $header.="<link rel=\"stylesheet\" type=\"text/css\" href=\"$css\" media=\"all\" >\n"; $header.="<title>$titre</title>\n</head>\n"; return $header; } # Fonction qui renvoie le code HTML du menu de toutes les pages function menu() { $menu =""; $menu.="<ul> <li><a href=\"?module=acceuil\">Accueil</a></li> <li><a href=\"?module=salles\">Reserver une salle</a></li> "; if (isset($_SESSION['utilisateur'])) { $user = $_SESSION['utilisateur']; if($user->isAdministrateur){ $menu.="<li><a href=\"?module=inscription\">Inscrire un nouveau membre</a></li>"; } } $menu.="<li><a href=\"logout.php\">Deconnexion</a></li>"; $menu.="</ul>"; return $menu; } // Fonction qui renvoie le code HTML du pied de toutes les pages function footer_page($email) { $footer =""; $footer.="<strong> date du jour" . date("j/m/Y") ." :: </strong>"; # ! adresse email non cryptée : spam possible $footer.="<a href=\"mailto:"; $footer.=$email; $footer.="\">"; $footer.=$email; $footer.="</a>\n"; return $footer; } # Fonction qui renvoie le code HTML du formulaire d'ajout d'un utilisateur function form_inscription() { $form =' <form action="#" method="post"> <p>Matricule :<input type="text" name="matricule" /></p> <p>Mot de passe : <input type="text" name="mdp" /></p> <p>Nom :<input type="text" name="nom" /></p> <p>Prenom : <input type="text" name="prenom" /></p> <p>email : <input type="text" name="email" /></p> <p>Administrateur : <input type="checkbox" name="administrateur" value="0" unchecked/></p> <p><input type="submit" value="Enregistrer"></p> </form> '; return $form; } # Fonction qui renvoie le code HTML du formulaire de login function form_login() { $form =' <form action="#" method="post"> <p>Matricule : <input type="text" name="matricule" /></p> <p>Mot de passe : <input type="password" name="mdp" /></p> <p><input type="submit" value="Se connecter"></p> </form> '; return $form; } function boite_erreur($html) { print'<div id="msg_erreur"><h3>Une ou plusieurs erreurs se sont produites :</h3>'; print $html; print'</div>'; } ?>
Je me demandais donc si cette méthode MVC était correcte ?
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 <?php // Connexion à la base de donné try { $dbh = connexionDB(); } catch (PDOException $e) { erreur(1); } if (isset($_POST['matricule']) && isset($_POST['mdp']) && isset($_POST['nom']) && isset($_POST['prenom']) && isset($_POST['email']) ) { enregistrementUtilisateur($dbh, $matricule, $mdp, $nom, $prenom, $email, $_POST['souvenir']); print "<p>Enregistrement reussie</p>"; header('location: ?module=accueil'); }else{ boite_erreur("<p>Erreur, Aucun champ ne doit être vide!!!</p>"); } form_inscription(); ?>
Merci d'avance.
bee
Partager