Bonjour à tous,
voilà, j'ai suivi un tuto pour un système de news, et le résultat est plutot satisfaisant voici mes codes :
new.php (affiche automatiquement de façon aléatoire une news ) :
ensuite on a liste_news.php qui liste les news présentent dans la base de donnée :
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 <!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>Bienvenue sur mon site</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <style type="text/css"> h1, h3 { text-align:center; } h3 { 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; } </style> </head> <body> <h1> Bienvenue sur mon site !</h1> <p> Voici les dernières news </p> <?php mysql_connect("localhost", "root", ""); mysql_select_db("news"); //ON récupère les 5 dernières news $retour = mysql_query('SELECT * FROM news ORDER BY RAND() LIMIT 1'); while ($donnees = mysql_fetch_array($retour)) { ?> <div class="news"> <h3> <?php echo $donnees['titre']; ?> <em><?php echo date('d/m/Y à h\hi'); ?></em> </h3> <p> <?php $contenu = nl2br(stripslashes($donnees['contenu'])); echo $contenu ?> </p> </div> <?php } ?> </body> </html>
et enfin rediger_news.php permettant de rédiger une news :
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 <!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>Liste des news</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <style type="text/css"> h2, th, td { 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 news</a></h2> <?php mysql_connect("localhost", "root", ""); mysql_select_db("news"); //verif 1 : veut-on poster une news? if(isset($_POST['titre']) AND isset($_POST['contenu'])) { $titre = mysql_real_escape_string($_POST['titre']); $contenu = mysql_real_escape_string($_POST['contenu']); //verif si c'est une modif de news ou pas if($_POST['id_news'] == 0) { mysql_query("INSERT INTO news VALUES('', '" . $titre . "', '" . $contenu . "', '" . time() . "')"); } else { //Protection faille sql $_POST['$id_news'] = mysql_real_escape_string($_POST['id_news']); mysql_query("UPDATE news SET titre='" . $titre . "', contenu = '". $contenu . "', where id = '". $_POST['id_news'] . "'"); } } //Verif 2 : veut-on supprimer une news? if(isset($_GET['supprimer_news'])) { $_GET['supprimer_news'] = mysql_real_escape_string($_GET['supprimer_news']); mysql_query("DELETE FROM news WHERE id='". $_GET['supprimer_news'] . "'"); } ?> <table> <tr> <th>Modifier</th> <th>Supprimer</th> <th>Titre</th> <th>Date</th> </tr> <?php $retour = mysql_query("SELECT * FROM news ORDER BY id DESC"); while($donnees = mysql_fetch_array($retour)) { ?> <tr> <td><?php echo '<a href="rediger_news.php?modifier_news= ' . $donnees['id'] .'">'; ?>Modifier</a></td> <td><?php echo '<a href="liste_news.php?supprimer_news= ' . $donnees['id'] .'">'; ?>Supprimer</a></td> <td><?php echo stripslashes($donnees['titre']); ?></td> <td><?php echo date('d/m/Y'); ?></td> </tr> <?php } ?> </table> </body> </html>
Bon ça fonctionne mais mon problème est le suivant:
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 <!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 news</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <style type="text/css"> h3, form { text-align:center; } </style> <h3><a href="liste_news.php"> Retour vers la liste des news</a></h3> <?php mysql_connect("localhost", "root", ""); mysql_select_db("news"); //si on veut modifier une news if(isset($_GET['modifier_news'])) { $_GET['modifier_news'] = mysql_real_escape_string(htmlspecialchars($_GET['modifier_news'])); //Récupération info news correpondante $retour = mysql_query("SELECT * FROM news WHERE id='". $_GET['modifier_news'] . "'"); $donnees = mysql_fetch_array($retour); //on place titre et contenu dans une variable simple, $id_news sert à se souvenir que c'est une modif $titre = stripslashes($donnees['titre']); $contenu = stripslashes($donnees['contenu']); $id_news = $donnees['id']; } else // Alors c'est une création de news { $titre = ""; $contenu = ""; $id_news = 0; } ?> <form action="liste_news.php" method="post"> <p> Titre : <input type="text" name="titre" value="<?php echo $titre; ?>" /></p> <p> Contenu :<br /> <textarea name="contenu" rows="30" cols="60"> <?php echo $contenu; ?> </textarea> <br /> <input type="hidden" name="id_news" value= "<?php echo $id_news; ?>" /> <input type="submit" value= "ok" /> </p> </form> </body> </html>
les news à afficher sont en faite des poèmes, qui ont parfois une mise en forme spéciale selon les artistes. les retours à la ligne sont respectés mais pas les mots en gras ou en italique, y-a-t-il une possibilité de garder la mise en forme d'origine ou de la modifier après coût?
Partager