Comment faire : un script de news (amélioration)

Répondre
morgan.b
le 06/01/2010 à 09:51
morgan.b
J'ai amélioré le script pour permettre de poster avec la news 5 photos. S'est une moyenne des mes news, elles ont toujours plus ou moin 5 photos. Le probleme est que dans mon amélioration je suis obligé de charger les 5 photos. Je n'arrive pas à laisser des champs vide. De plus si aucune photo est charger le site affiche quand meme, un carré avec la croix rouge pour signaler que l'affichage n'est pas bon. Je n'arrive pas a appliquer a ce que j'ai fais la valeur si pas de photo charger, ne rien afficher .

Merci


Le fichier 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 ('localhost', 'root', '');
  6. mysql_select_db('news', $base);

  7. // on teste la déclaration de nos variables
  8. if (!isset($_POST['auteur']) || !isset($_POST['titre']) || !isset($_POST['news']) || !isset($_POST['image']) || !isset($_POST['image2']) || !isset($_POST['image3']) || !isset($_POST['image4']) || !isset($_POST['image5'])) {
  9. $erreur = 'Les variables nécessaires au script ne sont pas définies.';
  10. }
  11. else {
  12. if (empty($_POST['auteur']) || empty($_POST['titre']) || empty($_POST['news']) || empty($_POST['image']) || empty($_POST['image2']) || empty($_POST['image3']) || empty($_POST['image4']) || empty($_POST['image5'])) {
  13. $erreur = '<u>Attention :</u> au moins un des champs est vide.';
  14. }
  15. // si tout est bon, on peut commencer l'insertion dans la base
  16. else {
  17. // lancement de la requête d'insertion
  18. $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']).'", "'.mysql_escape_string($_POST['image']).'", "'.mysql_escape_string($_POST['image2']).'", "'.mysql_escape_string($_POST['image3']).'", "'.mysql_escape_string($_POST['image4']).'", "'.mysql_escape_string($_POST['image5']).'")';

  19. // 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)
  20. mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());

  21. // on ferme la connexion à la base de données
  22. mysql_close();

  23. // 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.
  24. header('Location:index.php');
  25. // on termine le script courant
  26. exit();
  27. }
  28. }
  29. }
  30. ?>
  31. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
  32. "http://www.w3.org/TR/html4/loose.dtd">
  33. <HTML>
  34. <HEAD>
  35. <meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
  36. <TITLE>Titre de page</TITLE>

  37. </HEAD>

  38. <BODY>

  39. <H2>Poster une news :</H2>
  40. <!-- on fait pointer le formulaire vers la page traitant les données -->
  41. <?php
  42. // on affiche les erreurs éventuelles
  43. if (isset($erreur)) echo '',$erreur,'<br /><br />';
  44. ?>
  45. <form action="insert_news.php" method="post">
  46. <table>
  47. <tr><td>
  48. <span class="gras">Auteur :</span>
  49. </td><td>
  50. <input type="text" name="auteur" maxlength="15" size="25" value="<?php if (isset($_POST['auteur'])) echo htmlentities(trim($_POST['auteur'])); ?>">
  51. </td></tr><tr><td>
  52. <span class="gras">Titre :</span>
  53. </td><td>
  54. <input type="text" name="titre" maxlength="45" size="45" value="<?php if (isset($_POST['titre'])) echo htmlentities(trim($_POST['titre'])); ?>">
  55. </td></tr><tr><td>
  56. <span class="gras">News :</span>
  57. </td><td>
  58. <textarea name="news" cols="55" rows="15"><?php if (isset($_POST['news'])) echo htmlentities(trim($_POST['news'])); ?></textarea>
  59. </td></tr><tr><td>
  60. <span class="gras"><u>Info :</u></span>
  61. </td><td>
  62. </td></tr><tr><td>
  63. <span class="gras">Image n°1 :</span>
  64. </td><td>
  65. <input type="text" name="image" maxlength="50" size="50" value="<?php if (isset($_POST['image'])) echo htmlentities(trim($_POST['image'])); ?>">
  66. </td></tr><tr><td>
  67. <span class="gras">Image n°2 :</span>
  68. </td><td>
  69. <input type="text" name="image2" maxlength="50" size="50" value="<?php if (isset($_POST['image2'])) echo htmlentities(trim($_POST['image2'])); ?>">
  70. </td></tr><tr><td>
  71. <span class="gras">Image n°3 :</span>
  72. </td><td>
  73. <input type="text" name="image3" maxlength="50" size="50" value="<?php if (isset($_POST['image3'])) echo htmlentities(trim($_POST['image3'])); ?>">
  74. </td></tr><tr><td>
  75. <span class="gras">Image n°4 :</span>
  76. </td><td>
  77. <input type="text" name="image4" maxlength="50" size="50" value="<?php if (isset($_POST['image4'])) echo htmlentities(trim($_POST['image4'])); ?>">
  78. </td></tr><tr><td>
  79. <span class="gras">Image n°5 :</span>
  80. </td><td>
  81. <input type="text" name="image5" maxlength="50" size="50" value="<?php if (isset($_POST['image5'])) echo htmlentities(trim($_POST['image5'])); ?>">
  82. </td></tr><tr><td>
  83. <span class="gras"><u>Info :</u></span>
  84. </td><td>
  85. </td></tr><tr><td><td align="left">
  86. <input type="submit" name="go" value="Poster la news">
  87. </td></tr></table>
  88. </form>

  89. </body>
  90. </html>

Le fichier news.php
  1. <?php
  2. // on se connecte à notre base
  3. $base = mysql_connect ('localhost', 'root', '');
  4. mysql_select_db('news', $base);

  5. // 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)
  6. $sql = 'SELECT auteur, titre, date, texte_news, image, image2, image3, image4, image5 FROM news ORDER BY date DESC;';

  7. // 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)
  8. $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());

  9. // on compte le nombre de news stockées dans la base de données
  10. $nb_news = mysql_num_rows($req);

  11. if ($nb_news == 0) {
  12. echo 'Aucune news enregistrée.';
  13. }
  14. else {
  15. // si on a au moins une news, on l'affiche
  16. while ($data = mysql_fetch_array($req)) {

  17. // on décompose la date
  18. sscanf($data['date'], "%4s-%2s-%2s %2s:%2s:%2s", $an, $mois, $jour, $heure, $min, $sec);

  19. // on affiche les résultats
  20. echo '<br /><H2>' , htmlentities(trim($data['titre'])) , '</H2>';
  21. echo '<H3>Posté par :&nbsp;&nbsp;' , htmlentities(trim($data['auteur']));
  22. echo '&nbsp;&nbsp;le ' , $jour , '/' , $mois , '/' , $an , '</H3>';
  23. echo '&nbsp;' , nl2br(htmlentities(trim($data['texte_news']))) , '<br />';
  24. echo '<br /><a href="' , htmlentities(trim($data['image'])) , '.jpg" target="_blank"><img src="' , htmlentities(trim($data['image'])) , '.png" border=0></a>&nbsp;&nbsp;&nbsp;';
  25. echo '<a href="' , htmlentities(trim($data['image2'])) , '.jpg" target="_blank"><img src="' , htmlentities(trim($data['image2'])) , '.png" border=0></a><br />';
  26. echo '<br /><a href="' , htmlentities(trim($data['image3'])) , '.jpg" target="_blank"><img src="' , htmlentities(trim($data['image3'])) , '.png" border=0></a>&nbsp;&nbsp;&nbsp;';
  27. echo '<a href="' , htmlentities(trim($data['image4'])) , '.jpg" target="_blank"><img src="' , htmlentities(trim($data['image4'])) , '.png" border=0></a><br />';
  28. echo '<br /><a href="' , htmlentities(trim($data['image5'])) , '.jpg" target="_blank"><img src="' , htmlentities(trim($data['image5'])) , '.png" border=0></a><br />';

  29. }
  30. }
  31. // on libère l'espace mémoire alloué à cette requête
  32. mysql_free_result ($req);

  33. // on ferme la connexion à la base de données
  34. mysql_close ();
  35. ?>

Le fichier index.php
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
  2. "http://www.w3.org/TR/html4/loose.dtd">

  3. <HTML>
  4. <HEAD>
  5. <meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
  6. <TITLE>Titre de page</TITLE>

  7. </HEAD>


  8. <!-- code HTML avant l'affiche des news (tout dépend comment est constitué votre site) -->
  9. <?php
  10. // on inclut l'affichage de nos news
  11. include ('news.php');
  12. ?>
  13. <!-- code HTML après l'affiche des news (tout dépend comment est constitué votre site) -->


  14. </body>
  15. </html>
morgan
morgan.b
le 06/01/2010 à 10:21
morgan.b
Bien sur il y a dans ma table les champs qui me permettent de charger les images. Il faut que les images soient deja sur le serveur et il faut connaitre leur emplacement pour l'indiquer dans le formulaire.

Vola merci
morgan
onec
le 16/01/2010 à 10:11
onec
tu n'a extraire les champ dont tu ne veut pas dans tes codes et de ta table, et le tour est joué.
dit je cherche aussi un script de news améliorer avec photo, tu peut m'informer le site ou ta pris ton script ? merci d'avance
rien
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours