summaryrefslogtreecommitdiff
path: root/articles
diff options
context:
space:
mode:
Diffstat (limited to 'articles')
-rw-r--r--articles/a-bout-de-souffle.jpgbin0 -> 443799 bytes
-rw-r--r--articles/acoustic-guitar.pngbin0 -> 111323 bytes
-rw-r--r--articles/ajoutarticle.php103
-rw-r--r--articles/articlesliste.php179
-rw-r--r--articles/atelier-franssmann-mpt-penhars.jpgbin0 -> 687407 bytes
-rw-r--r--articles/baleine-bouchons.jpgbin0 -> 599695 bytes
-rw-r--r--articles/breizh-color.jpgbin0 -> 359249 bytes
-rw-r--r--articles/cafe-philo.jpgbin0 -> 649125 bytes
-rw-r--r--articles/composteur.jpgbin0 -> 56902 bytes
-rw-r--r--articles/emmaus.jpgbin0 -> 73358 bytes
-rw-r--r--articles/fanfare-invisible-manif-climat.jpgbin0 -> 596426 bytes
-rw-r--r--articles/housse-ukulele-reduite.jpgbin0 -> 372151 bytes
-rw-r--r--articles/housse-ukulele.jpgbin0 -> 1298153 bytes
-rw-r--r--articles/installation-stand.jpgbin0 -> 810522 bytes
-rw-r--r--articles/kig-ar-farz.jpgbin0 -> 650173 bytes
-rw-r--r--articles/la-guitare-pour-les-nuls.jpgbin0 -> 104742 bytes
-rw-r--r--articles/lombricomposteur.jpgbin0 -> 915144 bytes
-rw-r--r--articles/mini_a-bout-de-souffle.jpgbin0 -> 15159 bytes
-rw-r--r--articles/mini_acoustic-guitar.pngbin0 -> 26092 bytes
-rw-r--r--articles/mini_atelier-franssmann-mpt-penhars.jpgbin0 -> 20014 bytes
-rw-r--r--articles/mini_baleine-bouchons.jpgbin0 -> 7860 bytes
-rw-r--r--articles/mini_breizh-color.jpgbin0 -> 22504 bytes
-rw-r--r--articles/mini_cafe-philo.jpgbin0 -> 14942 bytes
-rw-r--r--articles/mini_composteur.jpgbin0 -> 14963 bytes
-rw-r--r--articles/mini_emmaus.jpgbin0 -> 22084 bytes
-rw-r--r--articles/mini_fanfare-invisible-manif-climat.jpgbin0 -> 24393 bytes
-rw-r--r--articles/mini_housse-ukulele.jpgbin0 -> 23877 bytes
-rw-r--r--articles/mini_installation-stand.jpgbin0 -> 15192 bytes
-rw-r--r--articles/mini_kig-ar-farz.jpgbin0 -> 16772 bytes
-rw-r--r--articles/mini_la-guitare-pour-les-nuls.jpgbin0 -> 14996 bytes
-rw-r--r--articles/mini_lombricomposteur.jpgbin0 -> 21798 bytes
-rw-r--r--articles/mini_nettoyage-des-bois.jpgbin0 -> 32145 bytes
-rw-r--r--articles/mini_nora-isaac-22-millions-de-vue.jpgbin0 -> 18663 bytes
-rw-r--r--articles/mini_poney.pngbin0 -> 92972 bytes
-rw-r--r--articles/mini_reseau.pngbin0 -> 48413 bytes
-rw-r--r--articles/mini_rouget.jpgbin0 -> 15815 bytes
-rw-r--r--articles/mini_seules-les-betes.jpgbin0 -> 7465 bytes
-rw-r--r--articles/mini_surf.pngbin0 -> 129819 bytes
-rw-r--r--articles/miniatures.php85
-rw-r--r--articles/modifarticle.php111
-rw-r--r--articles/nettoyage-des-bois.jpgbin0 -> 975411 bytes
-rw-r--r--articles/nora-isaac-22-millions-de-vue.jpgbin0 -> 64891 bytes
-rw-r--r--articles/poney.pngbin0 -> 603474 bytes
-rw-r--r--articles/reseau.pngbin0 -> 54714 bytes
-rw-r--r--articles/rouget.jpgbin0 -> 1103824 bytes
-rw-r--r--articles/seules-les-betes.jpgbin0 -> 119608 bytes
-rw-r--r--articles/supprarticle.php131
-rw-r--r--articles/supprconfirmée.php85
-rw-r--r--articles/surf.pngbin0 -> 2810509 bytes
49 files changed, 694 insertions, 0 deletions
diff --git a/articles/a-bout-de-souffle.jpg b/articles/a-bout-de-souffle.jpg
new file mode 100644
index 0000000..591496c
--- /dev/null
+++ b/articles/a-bout-de-souffle.jpg
Binary files differ
diff --git a/articles/acoustic-guitar.png b/articles/acoustic-guitar.png
new file mode 100644
index 0000000..5503dd0
--- /dev/null
+++ b/articles/acoustic-guitar.png
Binary files differ
diff --git a/articles/ajoutarticle.php b/articles/ajoutarticle.php
new file mode 100644
index 0000000..56f63a1
--- /dev/null
+++ b/articles/ajoutarticle.php
@@ -0,0 +1,103 @@
1<?php
2// PAGE SÉCURISÉE ! impossible de la voir si la variable $_SESSION['mdpvalide'] ne vaut pas 1
3
4session_start();
5if (isset ($_SESSION["mdpvalide"]))
6{
7 if($_SESSION["mdpvalide"]) // booléen, test si ça vaut 1
8 {} // dans ce cas on fait rien et on laisse php lire la suite
9 else
10 {
11 header('Location: ../connexion.php');
12 exit ();
13 // exit() sert à interrompre php qui n'a alors surtout pas besoin d'aller jusqu'en bas de la page
14 }
15}
16else
17{
18 header('Location: ../connexion.php');
19 exit ();
20}
21
22
23// connexion à la base de données
24include("../connexionbase.php");
25
26
27// récupérer les POST, complèter la base et uploader des photos
28if (isset ($_FILES['photo']) AND $_FILES['photo']['error'] == 1) // fichier trop lourd
29{
30 header('Location: ../administration.php?nouvarticle=2');
31 exit ();
32}
33elseif ($_FILES['photo']['error'] == 0 AND $_POST['titre'] != '') // présence d'un titre
34{
35 // extension du fichier
36 $infophoto = pathinfo ($_FILES['photo']['name']); // pathinfo renvoie un tableau, qui contient notamment l'extension du fichier
37 $extautorisées = array ('jpg', 'jpeg', 'png', 'gif', 'JPG', 'JPEG', 'PNG', 'GIF');
38 if (in_array ($infophoto['extension'], $extautorisées)) // on compare l'extension dans le tableau avec les extensions qu'on a choisi
39 {
40 // on récupère la variable $nom
41 $nom = basename ($_FILES['photo']['name']);
42
43 // vérification et formatage du nom du fichier
44 // supprimer les accents, problème: la méthode avec la fonction strstr marche mal avec l'UTF-8,
45 // on préfèrera celle-ci qui utilise str_replace et qui marche mieux (mais pas avec les majuscules accentuées):
46 $nom = str_replace(
47 array('à','â','ä','á','ã','å','î','ï','ì','í','ô','ö','ò','ó','õ','ø','ù','û','ü','ú','é','è','ê','ë','ç','ÿ','ñ'),
48 array('a','a','a','a','a','a','i','i','i','i','o','o','o','o','o','o','u','u','u','u','e','e','e','e','c','y','n'),
49 $nom);
50 // minuscules
51 $nom = mb_strtolower($nom, 'UTF-8');
52 $infophoto['extension'] = mb_strtolower($infophoto['extension'], 'UTF-8');
53 // ce qui n'est pas une lettre ou un chiffre est remplacé par un tiret, y compris les espaces
54 $nom = preg_replace('/([^.a-z0-9]+)/i', '-', $nom);
55
56 // ajout article avec photo
57 if (move_uploaded_file ($_FILES['photo']['tmp_name'], '/var/www/lelionetlecolibri.ordipolo.fr/articles/' . $nom))
58 // on doit pouvoir écrire dans le dossier d'arrivée (mettre le chemin absolu) et dans /tmp
59 // pour permettre à PHP l'écriture et la traversée du dossier, taper: sudo chmod 733 /var/www/dossier/qu'on/veut
60 {
61 // nom de la miniature
62 $mini_nom = "mini_" . $nom;
63
64 $requête = $base->prepare('INSERT INTO articles (nomarticle, contenu, nomphoto, miniature) VALUES (?, ?, ?, ?)');
65 $requête->execute(array(
66 $_POST['titre'],
67 $_POST['article'],
68 $nom,
69 $mini_nom));
70
71 // création de la miniature
72 include("miniatures.php");
73
74 header('Location: ../administration.php?nouvarticle=5'); // succès, move_uploaded_file renvoie la valeur TRUE
75 exit ();
76 }
77 else // echec à l'enregistrement, la fonction renvoie FALSE
78 {
79 header('Location: ../administration.php?nouvarticle=4');
80 exit ();
81 }
82 }
83 else // mauvais format
84 {
85 header('Location: ../administration.php?nouvarticle=3');
86 exit ();
87 }
88}
89elseif ($_POST['titre'] != '') // article sans photo
90{
91 $requête = $base->prepare('INSERT INTO articles (nomarticle, contenu) VALUES (?, ?)');
92 $requête->execute(array(
93 $_POST['titre'],
94 $_POST['article']));
95
96 header('Location: ../administration.php?nouvarticle=5');
97 exit ();
98}
99else // pas de titre
100{
101 header('Location: ../administration.php?nouvarticle=1');
102}
103?>
diff --git a/articles/articlesliste.php b/articles/articlesliste.php
new file mode 100644
index 0000000..f56cea7
--- /dev/null
+++ b/articles/articlesliste.php
@@ -0,0 +1,179 @@
1<?php
2// PAGE SÉCURISÉE ! impossible de la voir si la variable $_SESSION['mdpvalide'] ne vaut pas 1
3
4session_start();
5if (isset ($_SESSION["mdpvalide"]))
6{
7 if($_SESSION["mdpvalide"]) // booléen, test si ça vaut 1
8 {} // dans ce cas on fait rien et on laisse php lire la suite
9 else
10 {
11 header('Location: ../connexion.php');
12 exit ();
13 // exit() sert à interrompre php qui n'a alors surtout pas besoin d'aller jusqu'en bas de la page
14 }
15}
16else
17{
18 header('Location: ../connexion.php');
19 exit ();
20}
21?>
22
23<!DOCTYPE html>
24<html lang="fr" >
25 <head>
26 <meta charset="utf-8" />
27 <title>modifier, supprimer un article</title>
28 <link rel="shortcut icon" type="image/x-icon" href="../favicon.ico" />
29 <link rel="stylesheet" href="../blog.css" />
30 <meta name="viewport" content="width=device-width" />
31 <style>
32 section
33 {
34 margin: 10px 0px;
35 padding: 10px;
36 width: 960px;
37 }
38 </style>
39 </head>
40
41 <body>
42 <div id="bloc_page">
43
44 <header>
45 <h1><img class="sakura" src="../sakura.png" alt="sakura" />
46 Modifier ou supprimer un article
47 <img class="sakura" src="../sakura.png" alt="sakura" /></h1>
48 </header>
49
50 <li id="admin" >
51 <p><a href="../administration.php" >retour page précédente</a></p>
52 </li>
53
54
55 <!-- connexion à la base de données -->
56 <?php include("../connexionbase.php"); ?>
57
58
59 <?php // message de retour avec des GET venant de supprconfirmée.php
60 if (isset ($_GET['erreursuppr']))
61 {
62 if($_GET['erreursuppr'] == 1)
63 {
64 echo('<p><i>Erreur à la suppression d\'une image ou d\'un article,<br/>
65 si cet avertissement vous semble étrange, contactez ordipolo.</i></p>');
66 }
67 else
68 {}
69 }
70 elseif (isset ($_GET['suppr']))
71 {
72 if($_GET['suppr'] == 1)
73 {
74 echo('<i>L\'image a bien été supprimée !</i>');
75 }
76 elseif($_GET['suppr'] == 2)
77 {
78 echo('<i>L\'article a bien été supprimé !</i>');
79 }
80 else
81 {}
82 }
83 else
84 {}
85 ?>
86
87
88 <?php
89 $réponse = $base->query('SELECT id, nomarticle, contenu, nomphoto, miniature, DATE_FORMAT(dateheure, \'article ajouté le %d/%m/%Y à %Hh%i\')
90 AS date FROM articles ORDER BY id DESC');
91 while ($données = $réponse->fetch())
92 {
93 echo('<section>
94 <article>
95 <p class="dateheure" >' . $données['date'] . '</p>'); // date
96
97 // titre et texte
98 echo('<p><b>Modifier le titre et le texte.</b></p>');
99
100 echo('<form method="post" action="modifarticle.php" >');
101
102 echo('<p><label for="titre" >Titre:</label>
103 <input type="text" name="titre" id="titre" value="'
104 . htmlspecialchars($données['nomarticle']) . '" size="30" /></p>'); // titre
105
106 echo('<p><label for="article" >Texte:</label>
107 <textarea name="article" id="article" rows="10" cols="50" >'
108 . htmlspecialchars($données['contenu']) . '</textarea></p>'); // texte
109
110 echo('<p><input type="hidden" name="ligne" id="ligne" value="'
111 . $données['id'] . '" /></p>'); // numéro de la ligne dans la base
112
113 echo('<p><input type="submit" value="VALIDER LE NOUVEAU TEXTE" /></p>
114 </form>'); // bouton
115
116 // image
117 if ($données['nomphoto'] == '') // pas d'image
118 {
119 echo('<form method="post" action="modifarticle.php" enctype="multipart/form-data" >');
120
121 echo('<p><label><b>Ajouter une image à l\'article depuis mon PC / tablette / téléphone:</b></label><br/>
122 <input type="file" name="photo" id="photo" />
123 <input type="hidden" name="MAX_FILE_SIZE" value="8000000" ></p>'); // nouvelle image
124
125 echo('<p><input type="hidden" name="ligne" id="ligne" value="'
126 . $données['id'] . '" /></p>'); // numéro de la ligne dans la base
127
128 echo('<p><input type="submit" value="VALIDER L\'IMAGE" /></p>
129 </form>'); // bouton
130 }
131 else // y a déjà une image
132 {
133 echo('<form method="post" action="modifarticle.php" enctype="multipart/form-data" >');
134
135 echo('<p><label><b>Choisir une autre image sur mon PC / tablette / téléphone:</b></label><br/>
136 <input type="file" name="photo" id="photo" />
137 <input type="hidden" name="MAX_FILE_SIZE" value="8000000" ></p>'); // nouvelle image
138
139 echo('<div><p>Image actuelle =<img src="' . $données['miniature'] . '" alt="aucune" /></p></div>'); // montrer l'image
140
141 echo('<p><input type="hidden" name="ligne" id="ligne" value="'
142 . $données['id'] . '" /></p>'); // numéro de la ligne dans la base
143
144 echo('<p><input type="submit" value="VALIDER LA NOUVELLE IMAGE" /></p>
145 </form>'); // bouton
146
147 // supprimer l'image
148 // utilisation d'un POST au lieu d'un GET pour ne rien révéler de la base de données
149 echo ('<form method="post" action="supprarticle.php" >
150 <p><label><b>Supprimer l\'image illustrant cet article:</b></label></p>
151 <input type="hidden" name="quoi" value="image" >
152 <input type="hidden" name="ligne" value="' . $données['id'] . '" >
153 <p><input type="submit" value="SUPPRIMER L\'IMAGE" /></p>
154 </form>');
155
156 echo ('<p>Note: pour supprimer uniquement le texte, il suffit que le formulaire "Texte" soit vide et de cliquer sur "VALIDER LE NOUVEAU TEXTE".</p>');
157 }
158
159 //supprimer tout l'article
160 // utilisation d'un POST au lieu d'un GET pour ne rien révéler de la base de données
161 echo('<form method="post" action="supprarticle.php" >
162 <p><label><b>Supprimer l\'article entier:</b></label></p>
163 <input type="hidden" name="quoi" value="article" >
164 <input type="hidden" name="ligne" value="' . $données['id'] . '" >
165 <p><input type="submit" value="SUPPRIMER L\'ARTICLE" /></p>
166 </form>');
167
168 echo('<p><b>Ne rien faire tout compte fait.</b></p>
169 <p><a href="../administration.php" >Retour page précédente</a></p>');
170
171 echo('</article>
172 </section>');
173 }
174 $réponse->closeCursor();
175 ?>
176
177 </div>
178 </body>
179</html>
diff --git a/articles/atelier-franssmann-mpt-penhars.jpg b/articles/atelier-franssmann-mpt-penhars.jpg
new file mode 100644
index 0000000..4a6a83f
--- /dev/null
+++ b/articles/atelier-franssmann-mpt-penhars.jpg
Binary files differ
diff --git a/articles/baleine-bouchons.jpg b/articles/baleine-bouchons.jpg
new file mode 100644
index 0000000..f972330
--- /dev/null
+++ b/articles/baleine-bouchons.jpg
Binary files differ
diff --git a/articles/breizh-color.jpg b/articles/breizh-color.jpg
new file mode 100644
index 0000000..61d6611
--- /dev/null
+++ b/articles/breizh-color.jpg
Binary files differ
diff --git a/articles/cafe-philo.jpg b/articles/cafe-philo.jpg
new file mode 100644
index 0000000..0904644
--- /dev/null
+++ b/articles/cafe-philo.jpg
Binary files differ
diff --git a/articles/composteur.jpg b/articles/composteur.jpg
new file mode 100644
index 0000000..7b700e9
--- /dev/null
+++ b/articles/composteur.jpg
Binary files differ
diff --git a/articles/emmaus.jpg b/articles/emmaus.jpg
new file mode 100644
index 0000000..9cfeb9e
--- /dev/null
+++ b/articles/emmaus.jpg
Binary files differ
diff --git a/articles/fanfare-invisible-manif-climat.jpg b/articles/fanfare-invisible-manif-climat.jpg
new file mode 100644
index 0000000..8642016
--- /dev/null
+++ b/articles/fanfare-invisible-manif-climat.jpg
Binary files differ
diff --git a/articles/housse-ukulele-reduite.jpg b/articles/housse-ukulele-reduite.jpg
new file mode 100644
index 0000000..f8fcd6b
--- /dev/null
+++ b/articles/housse-ukulele-reduite.jpg
Binary files differ
diff --git a/articles/housse-ukulele.jpg b/articles/housse-ukulele.jpg
new file mode 100644
index 0000000..5262b3c
--- /dev/null
+++ b/articles/housse-ukulele.jpg
Binary files differ
diff --git a/articles/installation-stand.jpg b/articles/installation-stand.jpg
new file mode 100644
index 0000000..5b87c56
--- /dev/null
+++ b/articles/installation-stand.jpg
Binary files differ
diff --git a/articles/kig-ar-farz.jpg b/articles/kig-ar-farz.jpg
new file mode 100644
index 0000000..0c94d33
--- /dev/null
+++ b/articles/kig-ar-farz.jpg
Binary files differ
diff --git a/articles/la-guitare-pour-les-nuls.jpg b/articles/la-guitare-pour-les-nuls.jpg
new file mode 100644
index 0000000..e359861
--- /dev/null
+++ b/articles/la-guitare-pour-les-nuls.jpg
Binary files differ
diff --git a/articles/lombricomposteur.jpg b/articles/lombricomposteur.jpg
new file mode 100644
index 0000000..d3bd801
--- /dev/null
+++ b/articles/lombricomposteur.jpg
Binary files differ
diff --git a/articles/mini_a-bout-de-souffle.jpg b/articles/mini_a-bout-de-souffle.jpg
new file mode 100644
index 0000000..e4add77
--- /dev/null
+++ b/articles/mini_a-bout-de-souffle.jpg
Binary files differ
diff --git a/articles/mini_acoustic-guitar.png b/articles/mini_acoustic-guitar.png
new file mode 100644
index 0000000..c330ad4
--- /dev/null
+++ b/articles/mini_acoustic-guitar.png
Binary files differ
diff --git a/articles/mini_atelier-franssmann-mpt-penhars.jpg b/articles/mini_atelier-franssmann-mpt-penhars.jpg
new file mode 100644
index 0000000..e1e03d7
--- /dev/null
+++ b/articles/mini_atelier-franssmann-mpt-penhars.jpg
Binary files differ
diff --git a/articles/mini_baleine-bouchons.jpg b/articles/mini_baleine-bouchons.jpg
new file mode 100644
index 0000000..04354fd
--- /dev/null
+++ b/articles/mini_baleine-bouchons.jpg
Binary files differ
diff --git a/articles/mini_breizh-color.jpg b/articles/mini_breizh-color.jpg
new file mode 100644
index 0000000..d8f820d
--- /dev/null
+++ b/articles/mini_breizh-color.jpg
Binary files differ
diff --git a/articles/mini_cafe-philo.jpg b/articles/mini_cafe-philo.jpg
new file mode 100644
index 0000000..cf2ffa2
--- /dev/null
+++ b/articles/mini_cafe-philo.jpg
Binary files differ
diff --git a/articles/mini_composteur.jpg b/articles/mini_composteur.jpg
new file mode 100644
index 0000000..aa24816
--- /dev/null
+++ b/articles/mini_composteur.jpg
Binary files differ
diff --git a/articles/mini_emmaus.jpg b/articles/mini_emmaus.jpg
new file mode 100644
index 0000000..b183b4f
--- /dev/null
+++ b/articles/mini_emmaus.jpg
Binary files differ
diff --git a/articles/mini_fanfare-invisible-manif-climat.jpg b/articles/mini_fanfare-invisible-manif-climat.jpg
new file mode 100644
index 0000000..69490a8
--- /dev/null
+++ b/articles/mini_fanfare-invisible-manif-climat.jpg
Binary files differ
diff --git a/articles/mini_housse-ukulele.jpg b/articles/mini_housse-ukulele.jpg
new file mode 100644
index 0000000..eec6917
--- /dev/null
+++ b/articles/mini_housse-ukulele.jpg
Binary files differ
diff --git a/articles/mini_installation-stand.jpg b/articles/mini_installation-stand.jpg
new file mode 100644
index 0000000..eeb7ee2
--- /dev/null
+++ b/articles/mini_installation-stand.jpg
Binary files differ
diff --git a/articles/mini_kig-ar-farz.jpg b/articles/mini_kig-ar-farz.jpg
new file mode 100644
index 0000000..b45cda5
--- /dev/null
+++ b/articles/mini_kig-ar-farz.jpg
Binary files differ
diff --git a/articles/mini_la-guitare-pour-les-nuls.jpg b/articles/mini_la-guitare-pour-les-nuls.jpg
new file mode 100644
index 0000000..f8289fc
--- /dev/null
+++ b/articles/mini_la-guitare-pour-les-nuls.jpg
Binary files differ
diff --git a/articles/mini_lombricomposteur.jpg b/articles/mini_lombricomposteur.jpg
new file mode 100644
index 0000000..0fb7bc6
--- /dev/null
+++ b/articles/mini_lombricomposteur.jpg
Binary files differ
diff --git a/articles/mini_nettoyage-des-bois.jpg b/articles/mini_nettoyage-des-bois.jpg
new file mode 100644
index 0000000..1227a78
--- /dev/null
+++ b/articles/mini_nettoyage-des-bois.jpg
Binary files differ
diff --git a/articles/mini_nora-isaac-22-millions-de-vue.jpg b/articles/mini_nora-isaac-22-millions-de-vue.jpg
new file mode 100644
index 0000000..aa6b52c
--- /dev/null
+++ b/articles/mini_nora-isaac-22-millions-de-vue.jpg
Binary files differ
diff --git a/articles/mini_poney.png b/articles/mini_poney.png
new file mode 100644
index 0000000..b6e4413
--- /dev/null
+++ b/articles/mini_poney.png
Binary files differ
diff --git a/articles/mini_reseau.png b/articles/mini_reseau.png
new file mode 100644
index 0000000..5097a1d
--- /dev/null
+++ b/articles/mini_reseau.png
Binary files differ
diff --git a/articles/mini_rouget.jpg b/articles/mini_rouget.jpg
new file mode 100644
index 0000000..1e39f49
--- /dev/null
+++ b/articles/mini_rouget.jpg
Binary files differ
diff --git a/articles/mini_seules-les-betes.jpg b/articles/mini_seules-les-betes.jpg
new file mode 100644
index 0000000..2e50e5b
--- /dev/null
+++ b/articles/mini_seules-les-betes.jpg
Binary files differ
diff --git a/articles/mini_surf.png b/articles/mini_surf.png
new file mode 100644
index 0000000..73d6e9f
--- /dev/null
+++ b/articles/mini_surf.png
Binary files differ
diff --git a/articles/miniatures.php b/articles/miniatures.php
new file mode 100644
index 0000000..48f3525
--- /dev/null
+++ b/articles/miniatures.php
@@ -0,0 +1,85 @@
1<?php
2if ($infophoto['extension'] == 'png' OR $infophoto['extension'] == 'PNG')
3{
4 $source = imagecreatefrompng($nom);
5 $hauteur_source = imagesy($source);
6
7 if ($hauteur_source > 250)
8 {
9 // dimensions des deux images
10 $largeur_source = imagesx($source);
11 $forme = $hauteur_source / $largeur_source; // si image plus haute que large: >1, si plus large: <1
12 $hauteur_destination = 250; // hauteur arbitraire
13 $largeur_destination = 250 / $forme; // largeur proportionnée
14
15 // créer la miniature
16 $destination = imagecreatetruecolor($largeur_destination, 250);
17 imagecopyresampled($destination, $source, 0, 0, 0, 0, $largeur_destination, $hauteur_destination, $largeur_source, $hauteur_source);
18
19 // enregistrer la nouvelle image
20 imagepng($destination, $mini_nom);
21 }
22 else
23 {
24 // enregistrer l'image de départ avec le nom d'une miniature
25 imagepng($source, $mini_nom);
26 }
27}
28elseif ($infophoto['extension'] == 'jpg' OR $infophoto['extension'] == 'jpeg')
29{
30 $source = imagecreatefromjpeg($nom);
31 $hauteur_source = imagesy($source);
32;
33 if ($hauteur_source > 250)
34 {
35 // dimensions des deux images
36 $largeur_source = imagesx($source);
37 $forme = $hauteur_source / $largeur_source; // si image plus haute que large: >1, si plus large: <1
38 $hauteur_destination = 250; // hauteur arbitraire
39 $largeur_destination = 250 / $forme; // largeur proportionnée
40
41 // créer la miniature
42 $destination = imagecreatetruecolor($largeur_destination, 250);
43 imagecopyresampled($destination, $source, 0, 0, 0, 0, $largeur_destination, $hauteur_destination, $largeur_source, $hauteur_source);
44
45 // enregistrer la nouvelle image
46 imagejpeg($destination, $mini_nom);
47 }
48 else
49 {
50 // enregistrer l'image de départ avec le nom d'une miniature
51 imagejpeg($source, $mini_nom);
52 }
53}
54elseif ($infophoto['extension'] == 'gif')
55{
56 $source = imagecreatefromgif($nom);
57 $hauteur_source = imagesy($source);
58
59 if ($hauteur_source > 250)
60 {
61 // dimensions des deux images
62 $largeur_source = imagesx($source);
63 $forme = $hauteur_source / $largeur_source; // si image plus haute que large: >1, si plus large: <1
64 $hauteur_destination = 250; // hauteur arbitraire
65 $largeur_destination = 250 / $forme; // largeur proportionnée
66
67 // créer la miniature
68 $destination = imagecreatetruecolor($largeur_destination, 250);
69 imagecopyresampled($destination, $source, 0, 0, 0, 0, $largeur_destination, $hauteur_destination, $largeur_source, $hauteur_source);
70
71 // enregistrer la nouvelle image
72 imagegif($destination, $mini_nom);
73 }
74 else
75 {
76 // enregistrer l'image de départ avec le nom d'une miniature
77 imagegif($source, $mini_nom);
78 }
79}
80else // echec à l'enregistrement, la fonction renvoie FALSE
81{
82 header('Location: ../administration.php');
83 exit ();
84}
85?>
diff --git a/articles/modifarticle.php b/articles/modifarticle.php
new file mode 100644
index 0000000..e8cc827
--- /dev/null
+++ b/articles/modifarticle.php
@@ -0,0 +1,111 @@
1<?php
2// PAGE SÉCURISÉE ! impossible de la voir si la variable $_SESSION['mdpvalide'] ne vaut pas 1
3
4session_start();
5if (isset ($_SESSION["mdpvalide"]))
6{
7 if($_SESSION["mdpvalide"]) // booléen, test si ça vaut 1
8 {} // dans ce cas on fait rien et on laisse php lire la suite
9 else
10 {
11 header('Location: ../connexion.php');
12 exit ();
13 // exit() sert à interrompre php qui n'a alors surtout pas besoin d'aller jusqu'en bas de la page
14 }
15}
16else
17{
18 header('Location: ../connexion.php');
19 exit ();
20}
21
22
23// connexion à la base de données
24include("../connexionbase.php");
25
26
27// récupérer les POST, compléter la base et uploader des photos
28if (isset ($_FILES['photo']))
29{
30 if ($_FILES['photo']['error'] == 0)
31 {
32 // vérification de l'extension
33 $infophoto = pathinfo ($_FILES['photo']['name']); // pathinfo renvoie un tableau, qui contient notamment l'extension du fichier
34 $extautorisées = array ('jpg', 'jpeg', 'png', 'gif', 'JPG', 'JPEG', 'PNG', 'GIF');
35 if (in_array ($infophoto['extension'], $extautorisées)) // on compare l'extension dans le tableau avec les extensions qu'on a choisi
36 {
37 // on récupère la variable $nom
38 $nom = basename ($_FILES['photo']['name']);
39
40 // vérification et formatage du nom du fichier
41 // supprimer les accents, problème: la méthode avec la fonction strstr marche mal avec l'UTF-8,
42 // on préfèrera celle-ci qui utilise str_replace et qui marche mieux (mais pas avec les majuscules accentuées):
43 $nom = str_replace(
44 array('à','â','ä','á','ã','å','î','ï','ì','í','ô','ö','ò','ó','õ','ø','ù','û','ü','ú','é','è','ê','ë','ç','ÿ','ñ'),
45 array('a','a','a','a','a','a','i','i','i','i','o','o','o','o','o','o','u','u','u','u','e','e','e','e','c','y','n'),
46 $nom);
47 // minuscules
48 $nom = mb_strtolower($nom, 'UTF-8');
49 $infophoto['extension'] = mb_strtolower($infophoto['extension'], 'UTF-8');
50 // ce qui n'est pas une lettre ou un chiffre est remplacé par un tiret, y compris les espaces
51 $nom = preg_replace('/([^.a-z0-9]+)/i', '-', $nom);
52
53 // modification de l'image
54 if (move_uploaded_file ($_FILES['photo']['tmp_name'], '/var/www/lelionetlecolibri.ordipolo.fr/articles/' . $nom))
55 // on doit pouvoir écrire dans le dossier d'arrivée (mettre le chemin absolu) et dans /tmp
56 // pour permettre à PHP l'écriture et la traversée du dossier, taper: sudo chmod 733 /var/www/dossier/qu'on/veut
57 {
58 // nom de la miniature
59 $mini_nom = "mini_" . $nom;
60
61 $requête = $base->prepare('UPDATE articles SET nomphoto = :photo, miniature = :mini WHERE id = :li');
62 $requête->execute(array(
63 'photo' => $nom,
64 'mini' => $mini_nom,
65 'li' => $_POST['ligne']
66 ));
67
68 // création d'une miniature
69 include("miniatures.php");
70
71 header('Location: ../administration.php?nouvarticle=6'); // succès, move_uploaded_file renvoie la valeur TRUE
72 exit ();
73 }
74 else // echec à l'enregistrement, la fonction renvoie FALSE
75 {
76 header('Location: ../administration.php?nouvarticle=4');
77 exit ();
78 }
79 }
80 else // mauvais format
81 {
82 header('Location: ../administration.php?nouvarticle=3');
83 exit ();
84 }
85 }
86 else
87 {
88 header('Location: ../administration.php?nouvarticle=7');
89 exit ();
90 }
91}
92elseif ($_POST['titre'] != '') // il faut au moins mettre un titre
93{
94 // modification du texte
95 echo $_POST['ligne'];
96
97 $requête = $base->prepare('UPDATE articles SET nomarticle = :tit, contenu = :cont WHERE id = :li');
98 $requête->execute(array(
99 'tit' => $_POST['titre'],
100 'cont' => $_POST['article'],
101 'li' => $_POST['ligne']
102 ));
103
104 header('Location: ../administration.php?nouvarticle=6');
105 exit ();
106}
107else // pas de photo ni titre
108{
109 header('Location: ../administration.php?nouvarticle=1');
110}
111?>
diff --git a/articles/nettoyage-des-bois.jpg b/articles/nettoyage-des-bois.jpg
new file mode 100644
index 0000000..bc91586
--- /dev/null
+++ b/articles/nettoyage-des-bois.jpg
Binary files differ
diff --git a/articles/nora-isaac-22-millions-de-vue.jpg b/articles/nora-isaac-22-millions-de-vue.jpg
new file mode 100644
index 0000000..b6595cf
--- /dev/null
+++ b/articles/nora-isaac-22-millions-de-vue.jpg
Binary files differ
diff --git a/articles/poney.png b/articles/poney.png
new file mode 100644
index 0000000..eb3a7fd
--- /dev/null
+++ b/articles/poney.png
Binary files differ
diff --git a/articles/reseau.png b/articles/reseau.png
new file mode 100644
index 0000000..59f36c9
--- /dev/null
+++ b/articles/reseau.png
Binary files differ
diff --git a/articles/rouget.jpg b/articles/rouget.jpg
new file mode 100644
index 0000000..5c581c1
--- /dev/null
+++ b/articles/rouget.jpg
Binary files differ
diff --git a/articles/seules-les-betes.jpg b/articles/seules-les-betes.jpg
new file mode 100644
index 0000000..f85f57f
--- /dev/null
+++ b/articles/seules-les-betes.jpg
Binary files differ
diff --git a/articles/supprarticle.php b/articles/supprarticle.php
new file mode 100644
index 0000000..53b2477
--- /dev/null
+++ b/articles/supprarticle.php
@@ -0,0 +1,131 @@
1<?php
2// PAGE SÉCURISÉE ! impossible de la voir si la variable $_SESSION['mdpvalide'] ne vaut pas 1
3
4session_start();
5if (isset ($_SESSION["mdpvalide"]))
6{
7 if($_SESSION["mdpvalide"]) // booléen, test si ça vaut 1
8 {} // dans ce cas on fait rien et on laisse php lire la suite
9 else
10 {
11 header('Location: ../connexion.php');
12 exit ();
13 // exit() sert à interrompre php qui n'a alors surtout pas besoin d'aller jusqu'en bas de la page
14 }
15}
16else
17{
18 header('Location: ../connexion.php');
19 exit ();
20}
21?>
22
23<!DOCTYPE html>
24<html lang="fr" >
25 <head>
26 <meta charset="utf-8" />
27 <title>suppression définitive</title>
28 <link rel="shortcut icon" type="image/x-icon" href="../favicon.ico" />
29 <link rel="stylesheet" href="../blog.css" />
30 <meta name="viewport" content="width=device-width" />
31 <style>
32 section
33 {
34 margin: 10px 0px;
35 padding: 10px;
36 width: 960px;
37 }
38 </style>
39 </head>
40
41 <body>
42 <div id="bloc_page">
43 <header>
44 <h1><img class="sakura" src="../sakura.png" alt="sakura" />
45 Suppression définitive !!
46 <img class="sakura" src="../sakura.png" alt="sakura" /></h1>
47 </header>
48
49 <li id="admin" >
50 <p><a href="articlesliste.php" >retour page précédente</a></p>
51 </li>
52
53 <section>
54
55 <?php
56 // connexion à la base de données
57 include("../connexionbase.php");
58
59 // confirmation suppression de l'image
60 if ($_POST['quoi'] == 'image')
61 {
62 $requête = $base->prepare('SELECT nomarticle, contenu, nomphoto, DATE_FORMAT(dateheure, \'article ajouté le %d/%m/%Y à %Hh%i\')
63 AS date FROM articles WHERE id = :li');
64 $requête->execute(array(
65 'li' => $_POST['ligne']
66 ));
67 while ($données = $requête->fetch())
68 {
69 echo('<p><i>Vous êtes sur le point de supprimer définitivement l\'image liée à cet article.</i></p>');
70 echo('<article><p class="dateheure" >' . $données['date'] . '</p>');
71 echo('<h2>' . htmlspecialchars($données['nomarticle']) . '</h2>');
72 echo('<div class="contenu" >
73 <div><img src="' . $données['nomphoto'] . '" alt="" /></div>');
74 echo('<div class="contenutexte" ><pre>' . htmlspecialchars($données['contenu']) . '</pre></div>
75 </div></article>');
76
77 echo('<p><i><b>Êtes-vous sûr de vouloir supprimer définitivement cette image?<br/>
78 Cliquer sur le bouton ci-dessous pour confirmer:</b></i></p>');
79
80 echo('<form method="post" action="supprconfirmée.php" >
81 <input type="hidden" name="quoi" value="image" >
82 <input type="hidden" name="confirmation" value="oui" >
83 <input type="hidden" name="ligne" value="' . $_POST['ligne'] . '" >
84 <p><input type="submit" value="CONFIRMER" /></p>
85 </form>');
86 }
87 $requête->closeCursor();
88
89 }
90 // confirmation suppression de l'article entier
91 elseif ($_POST['quoi'] == 'article')
92 {
93 $requête = $base->prepare('SELECT nomarticle, contenu, nomphoto, DATE_FORMAT(dateheure, \'article ajouté le %d/%m/%Y à %Hh%i\')
94 AS date FROM articles WHERE id = :li');
95 $requête->execute(array(
96 'li' => $_POST['ligne']
97 ));
98 while ($données = $requête->fetch())
99 {
100 echo('<p><i>Vous êtes sur le point de supprimer définitivement cet article (le texte, l\'image, tout).</i></p>');
101 echo('<article><p class="dateheure" >' . $données['date'] . '</p>');
102 echo('<h2>' . htmlspecialchars($données['nomarticle']) . '</h2>');
103 echo('<div class="contenu" >
104 <div><img src="' . $données['nomphoto'] . '" alt="" /></div>');
105 echo('<div class="contenutexte" ><pre>' . htmlspecialchars($données['contenu']) . '</pre></div>
106 </div></article>');
107
108 echo('<p><i><b>Êtes-vous sûr de vouloir supprimer définitivement cet article?<br/>
109 Cliquer sur le bouton ci-dessous pour confirmer:</b></i></p>');
110
111 echo('<form method="post" action="supprconfirmée.php" >
112 <input type="hidden" name="quoi" value="article" >
113 <input type="hidden" name="confirmation" value="oui" >
114 <input type="hidden" name="ligne" value="' . $_POST['ligne'] . '" >
115 <p><input type="submit" value="CONFIRMER" /></p>
116 </form>');
117 }
118 $requête->closeCursor();
119
120 }
121 else
122 {
123 header('Location: articlesliste.php');
124 exit ();
125 }
126 ?>
127
128 </section>
129 </div>
130 </body>
131</html>
diff --git a/articles/supprconfirmée.php b/articles/supprconfirmée.php
new file mode 100644
index 0000000..0b5c08a
--- /dev/null
+++ b/articles/supprconfirmée.php
@@ -0,0 +1,85 @@
1<?php
2// PAGE SÉCURISÉE ! impossible de la voir si la variable $_SESSION['mdpvalide'] ne vaut pas 1
3
4session_start();
5if (isset ($_SESSION["mdpvalide"]))
6{
7 if($_SESSION["mdpvalide"]) // booléen, test si ça vaut 1
8 {} // dans ce cas on fait rien et on laisse php lire la suite
9 else
10 {
11 header('Location: ../connexion.php');
12 exit ();
13 // exit() sert à interrompre php qui n'a alors surtout pas besoin d'aller jusqu'en bas de la page
14 }
15}
16else
17{
18 header('Location: ../connexion.php');
19 exit ();
20}
21
22
23// connexion à la base de données
24include("../connexionbase.php");
25
26
27// supprimer l'image
28if (isset ($_POST['quoi']) AND ($_POST['confirmation']))
29{
30 if ($_POST['quoi'] == 'image' AND $_POST['confirmation'] == 'oui' )
31 {
32 // pour l'image
33 $requête = $base->prepare('SELECT nomphoto, miniature FROM articles WHERE id = :li');
34 $requête->execute(array(
35 'li' => $_POST['ligne']
36 ));
37 while ($données = $requête->fetch())
38 {
39 unlink ($données['nomphoto']);
40 unlink ($données['miniature']);
41 }
42
43 // pour le nom de l'image dans la base de données
44 $requête = $base->prepare('UPDATE articles SET nomphoto = \'\', miniature = \'\' WHERE id = :li');
45 $requête->execute(array(
46 'li' => $_POST['ligne']
47 ));
48
49 header('Location: articlesliste.php?suppr=1');
50 exit ();
51 }
52 elseif ($_POST['quoi'] == 'article' AND $_POST['confirmation'] == 'oui' )
53 {
54 // pour l'image
55 $requête = $base->prepare('SELECT nomphoto, miniature FROM articles WHERE id = :li');
56 $requête->execute(array(
57 'li' => $_POST['ligne']
58 ));
59 while ($données = $requête->fetch())
60 {
61 unlink ($données['nomphoto']);
62 unlink ($données['miniature']);
63 }
64
65 // pour la ligne dans la base de données
66 $requête = $base->prepare('DELETE FROM articles WHERE id = :li');
67 $requête->execute(array(
68 'li' => $_POST['ligne']
69 ));
70
71 header('Location: articlesliste.php?suppr=2');
72 exit ();
73 }
74 else
75 {
76 header('Location: articlesliste.php?erreursuppr=1');
77 exit ();
78 }
79}
80else
81{
82 header('Location: articlesliste.php?erreursuppr=1');
83 exit ();
84}
85?>
diff --git a/articles/surf.png b/articles/surf.png
new file mode 100644
index 0000000..eb6c2df
--- /dev/null
+++ b/articles/surf.png
Binary files differ