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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
|
<?php
// controller/admin.php
//
// utilisation du site en écriture
// version des pages en mode admin lorsque celui-ci crée ou modifie quelque chose
function melaineEdit($numArticle, $suppression)
{
$page_actuelle = "melaine";
$Articles = new ArticlesManager;
// contenu de la page
$Articles->setPage($page_actuelle);
$Articles->getFiles();
// nouvel article
if($numArticle == 0)
{
$title = "Ajouter un article";
$texte = '';
}
else
{
// nom de l'article ciblé (objet et session)
$Articles->findFileName($numArticle);
$_SESSION['nomFichier'] = $Articles->getFileName();
// suppression
if($suppression)
{
$Articles->delete();
header('Location: index.php?page=' . $page_actuelle);
exit();
}
// modification
else
{
$title = "Modifier un article";
// contenu envoyé à l'éditeur
$texte = $Articles->getOne();
}
}
// pour l'affichage des articles
$Articles->reverseFilesArray();
$articles = $Articles->getAll();
// sécurisation du contenu pré-existant inséré dans l'éditeur
if($numArticle >= 0 && !$suppression)
{
require('controller/ckeditor.php');
$texte = preparationCKeditor($numArticle, $texte);
}
// NB: penser à ajouter au template la fonctionnalité "autosave"
// https://ckeditor.com/docs/ckeditor5/latest/builds/guides/integration/saving-data.html
// morceaux en HTML à assembler
// variable $editeurHTML, contient $texte
require('view/template-formulaires.php');
// variables $css, $js, $header et $content,
// $content contient $articles et $editeurHTML
require('view/melaine.php');
// fin de l'assemblage
require('view/template.php');
}
function discoEdit($numArticle, $suppression)
{
$page_actuelle = "discographie";
$title = "Discographie";
// modèle
$Albums = new AlbumsManager;
$texte = '';
// traitements PHP pour l'éditeur
require('controller/ckeditor.php');
// sécurisation du contenu pré-existant inséré dans l'éditeur
$texte = preparationCKeditor($numArticle, $texte);
// morceaux en HTML à assembler
// variable $editeurHTML, contient $texte
require('view/template-formulaires.php');
// variables $css, $js, $header et $content,
// $content contient ???? et $editeurHTML
require('view/discographie.php');
// fin de l'assemblage
require('view/template.php');
}
function changerMotDePasse($secret)
{
// vérification supplémentaire
if($_SESSION['admin'] !== 1)
{
$_SESSION['admin'] = 0;
header('Location: index.php?page=' . $_GET['from']);
exit();
}
// Ajouter une sécurité par cpatcha avec un "input" supplémentaire
// Et créer une variable de session pour la réponse au CAPTCHA
$title = "nouveau mot de passe";
$subHeading = "Veuillez saisir votre actuel mot de passe suivi du nouveau.";
// cette page utilise la même vue que la fonction connexion() dans controller/visiteur.php
require('view/connexion.php');
echo($header);
// traitements: vérification ancien mot de passe et choix du nouveau
// bon mot de passe
if(isset ($_POST["ancienMotdepasse"]) AND $_POST["ancienMotdepasse"] == $secret)
{
// confirmation
echo($message);
//exit();
/*header('Location: index.php?page=' . $_GET['from'] . '&message=nouveau_mdp');
exit();*/
}
// mauvais mot de passe
elseif(isset ($_POST["ancienMotdepasse"]) AND $_POST["ancienMotdepasse"] != $secret)
{
// défense aux attaques par force brute
// pas parfait, ne marche pas si l'attaquant multiplie les connexions au site
echo($erreurMDP);
sleep(1);
echo($formulaireNouveauMDP);
}
// première arrivée sur la page
else
{
echo($formulaireNouveauMDP);
}
echo($footer);
}
|