Image.php
Admin.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
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
145
146
147
148
149
150
151
152
153 <?php class Image { public function __construct() { // le constructeur est vide pour ce projet } public function getImages($image_dir) { // iterator $i = 0; // opendir Ouvre un dossier, et récupère un pointeur dessus // $handle - (gérer, manipuler, traiter) if($handle = opendir($image_dir)) { // readdir Lit une entrée du dossier while(false !== ($entry = readdir($handle))) { if($entry != "." && $entry != "..") { $i++; $images[$i]['filename'] = $entry; $image_data = $this->getImageData($entry); $images[$i]['title'] = $image_data['title'] ; $images[$i]['description'] = $image_data['description'] ; echo '<pre>'; print_r($images); echo '</pre>'; } } } closedir($handle); return $images; } public function insertImage($title, $descr, $filename) { $mysqli = new mysqli('localhost', 'root', '', 'projet_images'); $mysqli->set_charset("utf8"); // connect_errno => Retourne le code d'erreur de la connexion MySQL style orienté objet if ($mysqli->connect_errno) { // connect_error => Retourne le message d'erreur de connexion MySQL style orienté objet printf("Echec de la connexion: %s\n", $mysqli->connect_error); exit(); } if (!$mysqli->query('INSERT INTO images (title, description, filename) VALUES ("' . $title . '", "' . $descr . '", "' . $filename . '")')) { $msg_error = '<p class="error">Une erreur est survenue lors de l\'insertion des données dans la base. Message d\'erreur : ' . $mysqli->error . '</p>'; $msg_error .= '<br><p class="error">Aucune information n\'a été enregistrée.</p>'; return $msg_error; } else { $mysqli->close(); return true; } } public function getImageData($filename) { $mysqli = new mysqli('localhost', 'root', '', 'projet_images'); $mysqli->set_charset("utf8"); if ($mysqli->connect_errno) { printf("Echec de la connexion: %s\n", $mysqli->connect_error); exit(); } $result = $mysqli->query('SELECT id, title, description, filename FROM images WHERE filename = "' . $filename . '"'); if (!$result) { echo 'Une erreur est survenue lors de la récupération des données dans la base. Message d\'erreur : ' . $mysqli->error; return false; } else { $row = $result->fetch_array(); $image_data['id'] = $row['id']; $image_data['title'] = $row['title']; $image_data['description'] = $row['description']; $image_data['filename'] = $row['filename']; return $image_data; } $mysqli->close(); } public function updateImageData($title, $descr, $filename) { $mysqli = new mysqli('localhost', 'root', '', 'projet_images'); $mysqli->set_charset("utf8"); if ($mysqli->connect_errno) { echo 'Echec de la connexion : ' . $mysqli->connect_error; exit(); } $query = 'UPDATE images SET title = "' . $title . '", description = "' . $descr . '" WHERE filename = "' . $filename . '"'; if(!$mysqli->query($query)) { $msg_error = '<p class="error">Une erreur est survenue lors de la mise à jour des données dans la base. Message d\'erreur : ' . $mysqli->error . '</p>'; $msg_error .= '<br><p class="error">Aucune information n\'a été enregistrée.</p>'; return $msg_error; } else { $mysqli->close(); return true; } } } ?>
process-image.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 <?php require('config.php'); ?> <?php require('class/Image.php'); ?> <?php require('process-image.php'); ?> <?php $image = new Image(); $images = $image->getImages(IMAGE_DIR_PATH); ?> <h1><?php echo WEB_TITLE ?></h1> <ul> <?php foreach ($images as $image): ?> <li> <img src="<?php echo IMAGE_DIR_URL . $image['filename'] ?>"> <form method="post" action="process-image.php"> <p>Titre : <input type="text" name="title" value="<?php echo $image['title'] ?>"> </p> <?php if(!empty($image['title'])): ?> <input type="hidden" name="update" value="1"> <?php endif ?> <input type="hidden" name="filename" value="<?php echo $image['filename'] ?>"> <p>Description<br> <textarea name="descr" cols="50" rows="5"><?php echo $image['description'] ?></textarea> </p> <p> <input type="submit" name="formImageSubmit" value="validez"> </p> </form> <?php //if(isset($error_msg)) echo $error_msg ?> <?php if(isset($msg_error)) echo $msg_error ?> <?php if(isset($msg_success)) echo $msg_success ?> </li> <?php endforeach ?> </ul>
contenu.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 <?php echo '<pre>'; print_r($_POST); echo '</pre>'; ?> <?php if(!isset($_POST['formImageSubmit'])) { $error_msg = '<p class="error">Aucune donnée n\'est fournie.<a href="admin.php">retour</a></p>'; } if(isset($_POST['formImageSubmit'])) { if((empty($_POST['title'])) OR (empty($_POST['descr'])) OR (empty($_POST['filename']))) { $error_msg = '<p class="error">une des informations est manquante.<a href="admin.php">retour</a></p>'; } else { // trim => permet d'enlever les espaces blancs au début et à la fin des chaînes de caractère. $title = trim($_POST['title']); $descr = trim($_POST['descr']); $filename = trim($_POST['filename']); $image = new Image(); $insertImage = $image->insertImage($title, $descr, $filename); if(true === $insertImage) { $msg_success = '<p class="message">Les informations ont bien été enregistrées dans la base de données.</p>'; header('location:admin.php?insertImage=ok'); } else { $msg_error = $insertImage; $error_msg = '<br><p class="error"><a href="admin.php">retour</a>'; } } if(isset($_POST['update'])) { $insertImage = $image->updateImageData($title, $descr, $filename); } else { $insertImage = $image->insertImage($title, $descr, $filename); } } ?>
index.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 <?php $image = new Image(); $images = $image->getImages(IMAGE_DIR_PATH); ?> <h1><?php echo WEB_TITLE ?></h1> <ul> <?php foreach($images as $image) : ?> <li> <p><img src="<?php echo IMAGE_DIR_URL . $image['filename'] ?>"></p> <p><?php echo $image['title'] ?></p> <p><?php echo $image['description'] ?></p> </li> <?php endforeach ?> </ul>
Bonjour, l'instance de la class dans le fichier process-image.php ne fonctionne pas. class non trouvée.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 <?php require('config.php'); require('class/Image.php'); require('contenu.php'); ?>
Merci pour votre aide.
Recevez mes vœux et bon week end à tous
Partager