Création de news sur son site web

Résolu/Fermé
jerems59 Messages postés 22 Date d'inscription dimanche 13 décembre 2009 Statut Membre Dernière intervention 20 septembre 2011 - 13 déc. 2009 à 18:26
jerems59 Messages postés 22 Date d'inscription dimanche 13 décembre 2009 Statut Membre Dernière intervention 20 septembre 2011 - 14 déc. 2009 à 19:14
Bonjour,

je voudrai créer une partie news sur mon site web, j'ai consulté beaucoup de site web et je pense avoir trouver se que je recherche mais comme je suis novice, j'ai besoin de beaucoup d'aide.

Voila ou j'en suis:
-------------------------------------------------------------------------------------------------------------------------------
Avant de continuer plus loin le script, nous allons supposer que les news seront affichées sur la page d'accueil de votre site (soit sur la page index.php directement à la racine de votre site).
Ensuite, afin de ne pas trop retoucher le code de votre page index.php (soit la page d'accueil déjà existante de votre site) nous allons placer tout le code permettant d'afficher les news dans une autre page PHP (donc différente de la page d'accueil du site, et que l'on nommera news.php).
Cependant, pas de panique, nous allons quand même pouvoir afficher les news sur la page d'accueil du site via la fonction include() de PHP.

Voyons tout de suite le code de la page news.php :

news.php

1. <?php
2. // on se connecte à notre base
3. $base = mysql_connect ('serveur', 'login', 'password');
4. mysql_select_db('nom_base', $base);
5.
6. // lancement de la requête. on sélectionne les news que l'on va ordonner suivant l'ordre "inverse" des dates (de la plus récente à la plus vieille : DESC) tout en ne sélectionnant que le nombre voulu de news à afficher (LIMIT)
7. $sql = 'SELECT auteur, titre, date, texte_news FROM news ORDER BY date DESC;';
8.
9. // on lance la requête (mysql_query) et on impose un message d'erreur si la requête ne se passe pas bien (or die)
10. $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
11.
12. // on compte le nombre de news stockées dans la base de données
13. $nb_news = mysql_num_rows($req);
14.
15. if ($nb_news == 0) {
16. echo 'Aucune news enregistrée.';
17. }
18. else {
19. // si on a au moins une news, on l'affiche
20. while ($data = mysql_fetch_array($req)) {
21.
22. // on décompose la date
23. sscanf($data['date'], "%4s-%2s-%2s %2s:%2s:%2s", $an, $mois, $jour, $heure, $min, $sec);
24.
25. // on affiche les résultats
26. echo '<br />News de : ' , htmlentities(trim($data['auteur'])) , '<br />';
27. echo 'Titre : ' , htmlentities(trim($data['titre'])) , '<br />';
28. echo 'Postée le : ' , $jour , '/' , $mois , '/' , $an , ' à ' , $heure , ':' , $min , ':' , $sec , '<br /><br />';
29. echo 'News : ' , nl2br(htmlentities(trim($data['texte_news']))) , '<br />';
30. }
31. }
32. // on libère l'espace mémoire alloué à cette requête
33. mysql_free_result ($req);
34.
35. // on ferme la connexion à la base de données
36. mysql_close ();
37. ?>

Récupérer le code


Ensuite, en supposant bien que vous ayez appelé cette page news.php et qu'elle se trouve à la racine de votre site WEB, il ne vous restera plus qu'à inclure ce code dans votre page index.php afin que les news apparaissent sur la page d'accueil de votre site.
Pour ce faire, nous allons utiliser la fonction include(), et nous allons la placer (dans la page index.php) à l'endroit exact où vous voulez que les news apparaissent.

Par exemple, on pourrait très bien avoir comme code pour la page index.php :

index.php

1. <html>
2. <head>
3. <title>Index de mon site WEB</title>
4. </head>
5. <body>
6. <!-- code HTML avant l'affiche des news (tout dépend comment est constitué votre site) -->
7. <?php
8. // on inclut l'affichage de nos news
9. include ('news.php');
10. ?>
11. <!-- code HTML après l'affiche des news (tout dépend comment est constitué votre site) -->
12. </body>
13. </html>

Récupérer le code


Enfin, tout ce qui concerne la partie affichage des news est désormais réglé.
Il ne nous reste plus qu'à écrire notre page nous permettant d'insérer de nouvelles news.

Pour cette page, comme le visiteur n'a pas intérêt à y accéder, nous allons les placer dans un répertoire de votre site WEB (répertoire que vous choisirez vous-même).

Ecrivons alors le code la page nous proposant d'insérer une nouvelle news (la page contenant le formulaire).
Le formulaire de cette page comportera alors un champ texte permettant d'écrire le nom de l'auteur de la news, un second champ texte permettant d'écrire le titre de la news et enfin, une textarea permettant de saisir la news elle-même.

On aura alors, pour la page insert_news.php :

insert_news.php

1. <?php
2. // on teste si le formulaire a été validé
3. if (isset($_POST['go']) && $_POST['go']=='Poster la news') {
4. // on se connecte à notre base
5. $base = mysql_connect ('serveur', 'login', 'password');
6. mysql_select_db('nom_base', $base);
7.
8. // on teste la déclaration de nos variables
9. if (!isset($_POST['auteur']) || !isset($_POST['titre']) || !isset($_POST['news'])) {
10. $erreur = 'Les variables nécessaires au script ne sont pas définies.';
11. }
12. else {
13. if (empty($_POST['auteur']) || empty($_POST['titre']) || empty($_POST['news'])) {
14. $erreur = 'Au moins un des champs est vide.';
15. }
16. // si tout est bon, on peut commencer l'insertion dans la base
17. else {
18. // lancement de la requête d'insertion
19. $sql = 'INSERT INTO news VALUES("", "'.mysql_escape_string($_POST['auteur']).'", "'.mysql_escape_string($_POST['titre']).'", "'.date("Y-m-d H:i:s").'", "'.mysql_escape_string($_POST['news']).'")';
20.
21. // on lance la requête (mysql_query) et on impose un message d'erreur si la requête ne se passe pas bien (or die)
22. mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());
23.
24. // on ferme la connexion à la base de données
25. mysql_close();
26.
27. // on redirige vers la page d'accueil du site (attention, cette redirection ne fonctionne qui si vous avez placé cette page dans un répertoire à partir de la racine du site). Si ce n'est pas le cas, veuillez entrer ici le bon chemin d'accès afin de retomber sur la page d'accueil du site.
28. header('Location: ../index.php');
29. // on termine le script courant
30. exit();
31. }
32. }
33. }
34. ?>
35. <html>
36. <head>
37. <title>Insertion d'une nouvelle news</title>
38. </head>
39.
40. <body>
41.
42. <!-- on fait pointer le formulaire vers la page traitant les données -->
43. <form action="insert_news.php" method="post">
44. <table>
45. <tr><td>
46. <span class="gras">Auteur :</span>
47. </td><td>
48. <input type="text" name="auteur" maxlength="30" size="50" value="<?php if (isset($_POST['auteur'])) echo htmlentities(trim($_POST['auteur'])); ?>">
49. </td></tr><tr><td>
50. <span class="gras">Titre :</span>
51. </td><td>
52. <input type="text" name="titre" maxlength="50" size="50" value="<?php if (isset($_POST['titre'])) echo htmlentities(trim($_POST['titre'])); ?>">
53. </td></tr><tr><td>
54. <span class="gras">News :</span>
55. </td><td>
56. <textarea name="news" cols="50" rows="10"><?php if (isset($_POST['news'])) echo htmlentities(trim($_POST['news'])); ?></textarea>
57. </td></tr><tr><td><td align="right">
58. <input type="submit" name="go" value="Poster la news">
59. </td></tr></table>
60. </form>
61. <?php
62. // on affiche les erreurs éventuelles
63. if (isset($erreur)) echo '<br /><br />',$erreur;
64. ?>
65. </body>
66. </html>

------------------------------------------------------------------------------------------------------------------------------
Merci beaucoup a la personne qui à écrit cela: http://www.lephpfacile.com/howto/2-comment-faire-un-script-de-news-en-php#h4
-------------------------------------------------------------------------------------------------------------------------------

Mais voila: J'ai du mal à le complété !
Est ce que quelqu'un pourrait précisé l'explication du contenu des scripts svp ?

Par exemple commençons par:
je doit remplacer le mot 'serveur' en rouge par quoi ?
(il le faut remplacer par l'adresse web la page d'accueil ( index php) ???)

Dsl j'ai du mal avec l'orthographe et les script.
Merci de votre réponse.
A voir également:

3 réponses

cycloop Messages postés 69 Date d'inscription mercredi 22 octobre 2008 Statut Membre Dernière intervention 8 avril 2013 16
14 déc. 2009 à 14:25
Vu que tu dis avoir besoin de beaucoup d'aide, laisse moi te donner un conseil : évite de faire despost aussi longs, avec beaucoup de choses dont tu ne te sers pas....

As-tu déjà utilisé PHP dans ton site ?
Si ce n'est pas le cas, je te conseille de suivre un tuto avec les bases du php. (voir le site du zéro par exemple. c'est basique, mais c'est facile à comprendre et ça aide à démarrer.)

Si tu connais déjà un peu le php, ça devrait pas être tant du chinois que ça ;)
0
avion-f16 Messages postés 19243 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 8 avril 2024 4 496
14 déc. 2009 à 15:02
Un lien vers le tuto aurait suffit, nous avons des yeux !
Il faut forcément que tu modifies "serveur" ainsi que toutes les autres données dans mysql_connect.
Penses aussi à créer la table dans ta base à l'aide de la requête SQL fournie.
Leur code n'est pas très terrible : ils utilisent des tableaux pour aligner le formulaire !

Tu peux aussi utiliser CutePHP pour que ton système soit plus complet.
0
jerems59 Messages postés 22 Date d'inscription dimanche 13 décembre 2009 Statut Membre Dernière intervention 20 septembre 2011
14 déc. 2009 à 19:14
oulala je croit que je vais laisser tomber ce php et je vais aller voir les bases lol
Merci de vos conseil
0