bonjour,
j'ai créé un site pour un vendeur de voitures...
Seulement, il rencontre des problèmes pour mettre des images en ligne.
j'ai alors voulu le faire via un formulaire avec un input type="file"...
j'ai, à la base utilisé un script de news afin de mettre facilement des annonces en ligne, et j'ai rajouté alors un script que j'ai trouvé sur un forum afin d'uploader une image dans un dossier du site...
je vous donne le code de ma page "rediger_news.php" :
ainsi que celui de ma page "administration.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 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" > <head> <title>Rédiger une annonce</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <style type="text/css"> h3, form { text-align:center; } body { background-image: url("../images/fond-francais-allemand.jpg"); } .titre { color: rgb(43, 72, 123); font-weight: bold; } .contenu { color: rgb(43, 72, 123); font-weight: bold; } </style> </head> <body> <h3><a href="../annonces.php">Retour à la liste des annonces</a></h3> <?php mysql_connect("localhost", "*****", "*****"); mysql_select_db("balcicars_be"); if (isset($_GET['modifier_news'])) // Si on demande de modifier une news { // On protège la variable "modifier_news" pour éviter une faille SQL $_GET['modifier_news'] = mysql_real_escape_string(htmlspecialchars($_GET['modifier_news'])); // On récupère les infos de la news correspondante $retour = mysql_query('SELECT * FROM news WHERE id=\'' . $_GET['modifier_news'] . '\'') or die(mysql_error()); $donnees = mysql_fetch_array($retour); // On place le titre et le contenu dans des variables simples $titre = stripslashes($donnees['titre']); $contenu = stripslashes($donnees['contenu']); $photo = stripslashes($donnees['photo']); $id_news = $donnees['id']; // Cette variable va servir pour se souvenir que c'est une modification } else // C'est qu'on rédige une nouvelle news { // Les variables $titre et $contenu sont vides, puisque c'est une nouvelle news $titre = ''; $contenu = ''; $id_news = 0; // La variable vaut 0, donc on se souviendra que ce n'est pas une modification } ?> <form action="administration.php" method="post"> <p class="titre">Titre : <input type="text" size="30" name="titre" value="<?php echo $titre; ?>" /></p> <p class="contenu"> Contenu :<br /> <textarea name="contenu" cols="50" rows="10"> <?php echo $contenu; echo "Marque : "; echo "Type : "; echo "Année : "; echo "Cylindrée : "; echo "Puissance : "; echo "Kilomètrage : "; echo "Prix : "; echo "Options : "; ?> </textarea><br /> Photo 1 (Max 10Mo) : <input type="file" name="photo1"/> <input type="hidden" name="id_news" value="<?php echo $id_news; ?>" /> <input type="submit" value="Envoyer" /> </p> </form> </body> </html>
j'aimerais, à partir de la page rediger_news.php, dans laquelle j'ai un champ pour ajouter une image, que cette image s'uploade dans un dossier "upload-admin" qui se trouve dans le même répertoire que la page administration.php et la page rediger_news.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 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr"> <head> <title>Balcicars Bütgenbach</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <style type="text/css"> body { background-image: url("../images/fond-francais-allemand.jpg"); } h2, th, td, h3 { text-align:center; } table { border-collapse:collapse; border:2px solid black; margin:auto; } th, td { border:1px solid black; } </style> </head> <body> <h2><a href="rediger_news.php">Ajouter une annonce</a></h2> <h3><a href="../annonces.php">Retour à la liste d'annonces</a></h3> <?php $i = 0; $poid_max_avatar = 10000000; $largeur_max_avatar = 100000000000000000; $longeur_max_avatar = 100000000000000000; //On définit les variables : $maxsize = $poid_max_avatar; //Poid de l'image $maxwidth = $largeur_max_avatar; //Largeur de l'image $maxheight = $longeur_max_avatar; //Longueur de l'image $extensions_valides = array( 'jpg' , 'jpeg' , 'gif' , 'png', 'bmp' ); //Liste des extensions valides if ($_FILES['photo1']['error'] > 0) { $i++; } if ($_FILES['photo1']['size'] > $maxsize) { $i++; } $image_sizes = getimagesize($_FILES['photo1']['tmp_name']); if ($image_sizes[0] > $maxwidth OR $image_sizes[1] > $maxheight) { $i++; } $extension_upload = strtolower(substr( strrchr($_FILES['photo1']['name'], '.') ,1)); if (!in_array($extension_upload,$extensions_valides) ) { $i++; } if ($i == 0) { //On déplace l'avatar $avatar = time(); $nomavatar = str_replace(' ','',$avatar).".".$extension_upload; $avatar = "./upload-admin/".str_replace(' ','',$avatar).".".$extension_upload; move_uploaded_file($_FILES['photo1']['tmp_name'],$avatar); } ?> <?php mysql_connect("localhost", "*****", "*****"); mysql_select_db("balcicars_be"); //----------------------------------------------------- // Vérification 1 : est-ce qu'on veut poster une news ? //----------------------------------------------------- if (isset($_POST['titre']) AND isset($_POST['contenu'])) { $titre = addslashes($_POST['titre']); $contenu = addslashes($_POST['contenu']); // On vérifie si c'est une modification de news ou pas if ($_POST['id_news'] == 0) { // Ce n'est pas une modification, on crée une nouvelle entrée dans la table mysql_query('INSERT INTO news(titre, contenu) VALUES(\''. $titre. '\', \''. $contenu.'\')')or die(mysql_error()); } else { // On protège la variable "id_news" pour éviter une faille SQL $_POST['id_news'] = addslashes($_POST['id_news']); // C'est une modification, on met juste à jour le titre et le contenu mysql_query("UPDATE news SET titre='" . $titre . "', contenu='" . $contenu . "' WHERE id='" . $_POST['id_news'] . "'")or die(mysql_error()); } } //-------------------------------------------------------- // Vérification 2 : est-ce qu'on veut supprimer une news ? //-------------------------------------------------------- if (isset($_GET['supprimer_news'])) // Si on demande de supprimer une news { // Alors on supprime la news correspondante // On protège la variable "id_news" pour éviter une faille SQL $_GET['supprimer_news'] = addslashes($_GET['supprimer_news']); mysql_query('DELETE FROM news WHERE id=\'' . $_GET['supprimer_news'] . '\''); } ?> <table><tr> <th>Modifier</th> <th>Supprimer</th> <th>Titre</th> </tr> <?php $retour = mysql_query('SELECT * FROM news ORDER BY id DESC')or die(mysql_error()); while ($donnees = mysql_fetch_array($retour)) // On fait une boucle pour lister les news { ?> <tr> <td><?php echo '<a href="rediger_news.php?modifier_news=' . $donnees['id'] . '">'; ?>Modifier</a></td> <td><?php echo '<a href="administration.php?supprimer_news=' . $donnees['id'] . '">'; ?>Supprimer</a></td> <td><?php echo stripslashes($donnees['titre']); ?></td> </tr> <?php } // Fin de la boucle qui liste les news ?> </table> </body> </html>
Il ne me reste alors qu'a insérer un lien vers cette image dans la page dans laquelle s'affiche la news. C'est ma page annonces.php que voici :
Je ne sais pas comment insérer un lien vers l'image uploadée auparavent dans la news. et je ne vois pas ce qui cloche lors de l'upload de l'image...
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 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" > <head> <title>Balcicars Annonces Angebote</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <style type="text/css"> h1 { text-align:center; color: rgb(168, 0, 8); text-decoration: underline; } h3 { text-align: center; background-color: black; color: white; font-size: 0.9em; margin-bottom: 0px; } .news p { background-color:#CCCCCC; margin-top:0px; } .news { width:70%; margin:auto; } body { width: 800px; margin: auto; margin-top: 10px; margin-bottom: 10px; background-image: url("images/fond-francais-allemand.jpg"); } .retour-fr { color: rgb(43, 72, 123); font-weight: bold; } .retour-de { color: rgb(43, 72, 123); font-weight: bold; } a { color: red; font-weight: bold; } </style> </head> <body> <h1>Annonces.</h1> <h1>Angebote.</h1> <?php mysql_connect("localhost", "*****", "*****"); mysql_select_db("balcicars_be"); // On récupère les 5 dernières news $retour = mysql_query('SELECT * FROM news ORDER BY id DESC LIMIT 0, 1000')or die(mysql_error()); while ($donnees = mysql_fetch_array($retour)) { ?> <div class="news"> <h3> <?php echo $donnees['titre']; ?> </h3> <p> <?php // On enlève les éventuels antislash PUIS on crée les entrées en HTML (<br />) $contenu = nl2br(stripslashes($donnees['contenu'])); echo $contenu; ?> <br/> </p> </div> <?php } // Fin de la boucle des news ?> <p class="retour-fr">Veuillez cliquer <a href="francais.html">ICI</a> pour retourner à la page d'acceuil en français.</p> <p class="retour-de">Klicken Sie bitte <a href="allemand.html">HIER</a> um zur Deutschen Hauptseite zu gelangen.</p> </body> </html>
Merci beaucoup
Partager