summaryrefslogtreecommitdiff
path: root/articles/modifarticle.php
diff options
context:
space:
mode:
Diffstat (limited to 'articles/modifarticle.php')
-rw-r--r--articles/modifarticle.php111
1 files changed, 111 insertions, 0 deletions
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?>