flux rss: probleme je comprend pas

flux rss: probleme je comprend pas - PHP - Programmation

Marsh Posté le 27-06-2005 à 20:36:26    

Bonjour a tous.
 
Je vous explique mon probleme.
 
Sur mon site j'ai un script de news.
Tous les titres de mes news s'affichent sur la page d'accueil.
Je voudrais donc savoir comment je peut faire pour que les webmasters puissent récuperer tous ces titres et les afficher sur leur site , tout en gardant les liens des news cliquables pour que les visiteurs voient les news sur mon site.
 
 
J'ai donc essayer ce tuto http://www.siteduzero.com/vostutos [...] tutoid=357
 
mais je comprend pas tout
 
j'ai donc fait ca:
 

Code :
  1. <?xml version="1.0" encoding="ISO-8859-1" ?>
  2. <rss version="2.0">
  3. <channel>
  4. <title>meteo-world</title>
  5. <link>http://www.meteo-world.com</link>
  6. <description>Découvrez l'actualité météo dans le monde , les prévisions météo en france , la météo en direct, les webcams pour suivre le temps en live, et plein d'autres choses.</description>
  7. <managingEditor>webmaster@meteo-world.com</managingEditor>
  8. <language>fr</language>
  9. <copyright>meteo-world</copyright>
  10. <webMaster>webmaster@meteo-world.com</webMaster>
  11. <item>


 
mais maintenant je comprend pas ce que je doit faire et ou mettre ce morceau de code

Reply

Marsh Posté le 27-06-2005 à 20:36:26   

Reply

Marsh Posté le 27-06-2005 à 20:52:18    

Ben tu mets tout ça dans un fichier genre www.monsite.com/rss.php et les gens récupèrent ton flux via cette url.


---------------
http://yoyo.eurotchat.net -> Wednesday 14 September a 02:00:01 up 43 days, 11:47,  2 users,  load average: 0.07, 0.03, 0.00
Reply

Marsh Posté le 27-06-2005 à 21:15:53    

j'ai tout refait ca me donne ca:
 

Code :
  1. <?
  2. //fichier créant la connexion à MySQL
  3. include("connect.php" );
  4. // prepare le fichier html pour le mettre en utf8 (xml)
  5. function cleanText($intext) {
  6.     return utf8_encode(htmlspecialchars(stripslashes($intext)));
  7. }
  8. // on spécifie que le fichier est de la forme xml
  9. // ne rien afficher avant cette ligne !
  10. header("Content-Type: text/xml;charset=utf-8" );
  11. $query1 = 'SELECT id, titre, date FROM news1';
  12. $result1 = mysql_query($query1);
  13. $phpversion = phpversion();
  14. // Les informations basique RSS 2.0
  15. echo <<<END
  16. <?xml version="1.0" encoding="utf-8"?>
  17. <rss version="2.0">
  18. <channel>
  19.  <title>Le titre de votre site</title>
  20.  <link>http://www.monsite.net</link>
  21.  <description>Mon site à moi c'est le meilleur</description>
  22.  <language>fr-FR</language>
  23.  <docs>http://backend.userland.com/rss</docs>
  24.  <generator>PHP/$phpversion</generator>
  25. END;
  26. // on affiche les 10 dernieres news
  27. for ($i = 0; $i < 10 ; $i++) {
  28. @$row = mysql_fetch_array($result1);
  29. $title    = cleanText($row["title"]);
  30. $link    = "http://www.monsite.net/news.php?id=".$row["id"];
  31. $description  = cleanText($row["contenu"]);
  32. $pubDate   = date("r", $row["time"]);
  33. echo <<<END
  34.  <item>
  35.   <title>$title</title>
  36.   <link>$link</link>
  37.   <description>$description</description>
  38.   <pubDate>$pubDate</pubDate>
  39.  </item>
  40. END;
  41. }
  42. echo <<<END
  43. </channel>
  44. </rss>
  45. END;
  46. ?>


 
 
mais j'ai cette erreur
 
Un caractère incorrect a été trouvé dans un contenu de texte. Erreur de traitement de la ressource http://www.meteo-world.com/rss.php. Ligne 6, Position 25  

Reply

Marsh Posté le 27-06-2005 à 21:28:58    

Chelou :  
sources :

Code :
  1. # <item>
  2.              <title>$title</title>
  3.              <link>$link</link>
  4.              <description>$description</description>
  5.              <pubDate>$pubDate</pubDate>
  6.          </item>


Résultats

Code :
  1. <item>
  2.     <title/>
  3.     <link>http://www.monsite.net/news.php?id=1</link>
  4.     <description/>
  5.     <pubDate>Thu,  1 Jan 1970 01:00:00 +0100</pubDate>
  6. </item>


 
 [:bugkiller2]
 
 [:fordprefect] Je vais avoir de la grêle en Bretagne  [:cvb]  [:el_manu]


Message édité par yoyo354 le 27-06-2005 à 21:31:38

---------------
http://yoyo.eurotchat.net -> Wednesday 14 September a 02:00:01 up 43 days, 11:47,  2 users,  load average: 0.07, 0.03, 0.00
Reply

Marsh Posté le 27-06-2005 à 21:37:47    

Arff je comprend rien de rien

Reply

Marsh Posté le 27-06-2005 à 21:41:17    

Montre nous la fonction cleantext(). Ca déconne par là.


---------------
http://yoyo.eurotchat.net -> Wednesday 14 September a 02:00:01 up 43 days, 11:47,  2 users,  load average: 0.07, 0.03, 0.00
Reply

Marsh Posté le 27-06-2005 à 21:47:53    

je ne sait pas ce que c'est .  :??:  
 
 
j'ai que unquement un fichier nommé connect.php avec les parametres pour me connecter a ma base et ensuite ce fichier nommé rss.php  
 

Code :
  1. <?
  2. //fichier créant la connexion à MySQL
  3. include("connect.php" );
  4. // prepare le fichier html pour le mettre en utf8 (xml)
  5. function cleanText($intext) {
  6.     return utf8_encode(htmlspecialchars(stripslashes($intext)));
  7. }
  8. // on spécifie que le fichier est de la forme xml
  9. // ne rien afficher avant cette ligne !
  10. header("Content-Type: text/xml;charset=utf-8" );
  11. $query1 = 'SELECT id, titre, date FROM news1';
  12. $result1 = mysql_query($query1);
  13. $phpversion = phpversion();
  14. // Les informations basique RSS 2.0
  15. echo <<<END
  16. <?xml version="1.0" encoding="utf-8"?>
  17. <rss version="2.0">
  18. <channel>
  19.  <title>meteo-world</title>
  20.  <link>http://www.meteo-world.com</link>
  21.  <description>Mon site à moi c'est le meilleur</description>
  22.  <language>fr-FR</language>
  23.  <docs>http://www.meteo-world.com/rss</docs>
  24.  <generator>PHP/$phpversion</generator>
  25. END;
  26. // on affiche les 10 dernieres news
  27. for ($i = 0; $i < 10 ; $i++) {
  28. @$row = mysql_fetch_array($result1);
  29. $title    = cleanText($row["title"]);
  30. $link    = "http://www.meteo-world/news/index.php?id=".$row["id"];
  31. $description  = cleanText($row["contenu"]);
  32. $pubDate   = date("r", $row["time"]);
  33. echo <<<END
  34.  <item>
  35.   <title>$titre</title>
  36.   <link>$link</link>
  37.   <description>$description</description>
  38.   <pubDate>$pubDate</pubDate>
  39.  </item>
  40. END;
  41. }
  42. echo <<<END
  43. </channel>
  44. </rss>
  45. END;
  46. ?>


 

Reply

Marsh Posté le 27-06-2005 à 21:51:27    

wydook a écrit :

je ne sait pas ce que c'est .  :??:
 
 
j'ai que unquement un fichier nommé connect.php avec les parametres pour me connecter a ma base et ensuite ce fichier nommé rss.php  
 
[...]


C'est normal, j'ai pas regardé assez haut [:al zheimer]  
 
Essaye sans la function cleantext :

Code :
  1. $title             = $row["title"];
  2.       $link             = "http://www.meteo-world/news/index.php?id=".$row["id"];
  3.       $description     = $row["contenu"];
  4.       $pubDate         = date("r", $row["time"]);


 


---------------
http://yoyo.eurotchat.net -> Wednesday 14 September a 02:00:01 up 43 days, 11:47,  2 users,  load average: 0.07, 0.03, 0.00
Reply

Marsh Posté le 27-06-2005 à 21:55:05    

maintenant ca me met ca: voir la page http://www.meteo-world.com/rss.php

Reply

Marsh Posté le 27-06-2005 à 22:02:01    

C'est déjà un peu mieux, on à bien </title> maintenant... [:bodette]  
 
Sinon fait un print_r(mysql_fetch_array($result1)); à la fin et balance le résultat [:pingouino]


---------------
http://yoyo.eurotchat.net -> Wednesday 14 September a 02:00:01 up 43 days, 11:47,  2 users,  load average: 0.07, 0.03, 0.00
Reply

Marsh Posté le 27-06-2005 à 22:02:01   

Reply

Marsh Posté le 27-06-2005 à 22:04:55    

j'ai mis ca  
 

Code :
  1. <?
  2. //fichier créant la connexion à MySQL
  3. include("connect.php" );
  4. // prepare le fichier html pour le mettre en utf8 (xml)
  5. function cleanText($intext) {
  6.     return utf8_encode(htmlspecialchars(stripslashes($intext)));
  7. }
  8. // on spécifie que le fichier est de la forme xml
  9. // ne rien afficher avant cette ligne !
  10. header("Content-Type: text/xml;charset=utf-8" );
  11. $query1 = 'SELECT id, titre, date FROM news1';
  12. $result1 = mysql_query($query1);
  13. $phpversion = phpversion();
  14. // Les informations basique RSS 2.0
  15. echo <<<END
  16. <?xml version="1.0" encoding="utf-8"?>
  17. <rss version="2.0">
  18. <channel>
  19.  <title>meteo-world</title>
  20.  <link>http://www.meteo-world.com</link>
  21.  <description>Mon site à moi c'est le meilleur</description>
  22.  <language>fr-FR</language>
  23.  <docs>http://www.meteo-world.com/rss</docs>
  24.  <generator>PHP/$phpversion</generator>
  25. END;
  26. // on affiche les 10 dernieres news  
  27. for ($i = 0; $i < 10 ; $i++) {
  28.     @$row = mysql_fetch_array($result1);
  29.   $titre             = $row["titre"];
  30.       $link             = "http://www.meteo-world/news/index.php?num_page=".$row["id"];
  31.       $description     = $row["contenu"];
  32.       $pubDate         = date("r", $row["time"]);
  33. print_r(mysql_fetch_array($result1));
  34. echo <<<END
  35.  <item>
  36.   <title>$titre</title>
  37.   <link>$link</link>
  38.   <description>$description</description>
  39.   <pubDate>$pubDate</pubDate>
  40.  </item>
  41. END;
  42. }
  43. echo <<<END
  44. </channel>
  45. </rss>
  46. END;
  47. ?>


 
 
et voilà la page http://www.meteo-world.com/rss.php

Reply

Marsh Posté le 27-06-2005 à 22:10:29    

Essayes ça sur une page vierge :  

Code :
  1. <?php
  2. include("connect.php" );
  3. $query1 = 'SELECT id, titre, date FROM news1';
  4. $result1 = mysql_query($query1);
  5. print_r(mysql_fetch_array($result1));
  6. ?>


Et envoie le résultat.


---------------
http://yoyo.eurotchat.net -> Wednesday 14 September a 02:00:01 up 43 days, 11:47,  2 users,  load average: 0.07, 0.03, 0.00
Reply

Marsh Posté le 27-06-2005 à 22:18:30    

ca me marque ca
 
Array ( [0] => 1 [id] => 1 [1] => [Ethiopie] Des inondations meurtrières dans ... [titre] => [Ethiopie] Des inondations meurtrières dans ... [2] => 2005-05-05 17:13:13 [date] => 2005-05-05 17:13:13 )

Reply

Marsh Posté le 27-06-2005 à 22:27:28    

Tu n'as que ça ?


---------------
http://yoyo.eurotchat.net -> Wednesday 14 September a 02:00:01 up 43 days, 11:47,  2 users,  load average: 0.07, 0.03, 0.00
Reply

Marsh Posté le 27-06-2005 à 22:29:47    

oui y a que ca qui s'affiche

Reply

Marsh Posté le 27-06-2005 à 22:33:00    

Montres la structure de la table stp.


---------------
http://yoyo.eurotchat.net -> Wednesday 14 September a 02:00:01 up 43 days, 11:47,  2 users,  load average: 0.07, 0.03, 0.00
Reply

Marsh Posté le 27-06-2005 à 22:34:21    

Code :
  1. CREATE TABLE `news1` (
  2.   `id` int(6) NOT NULL auto_increment,
  3.   `auteur` varchar(30) collate latin1_german1_ci NOT NULL default '',
  4.   `titre` text collate latin1_german1_ci NOT NULL,
  5.   `date` datetime default NULL,
  6.   `texte_news` text collate latin1_german1_ci NOT NULL,
  7.   PRIMARY KEY  (`id`)
  8. ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_german1_ci AUTO_INCREMENT=74 ;


 

Reply

Marsh Posté le 27-06-2005 à 22:39:11    

Code :
  1. $description     = $row["contenu"];


 [:athlonmp] Tu n'as pas de colonne contenu... Ca risque pas de marcher.
 
Sur ce je vais me coucher.  
 
 
 
 
 [:dehors2]


---------------
http://yoyo.eurotchat.net -> Wednesday 14 September a 02:00:01 up 43 days, 11:47,  2 users,  load average: 0.07, 0.03, 0.00
Reply

Marsh Posté le 27-06-2005 à 22:41:38    

Ah bon faut une colonne contenue obligatoirement ?

Reply

Marsh Posté le 27-06-2005 à 22:47:29    

oui


---------------
http://yoyo.eurotchat.net -> Wednesday 14 September a 02:00:01 up 43 days, 11:47,  2 users,  load average: 0.07, 0.03, 0.00
Reply

Marsh Posté le 28-06-2005 à 10:34:14    

wydook, je veux pas me foutre de toi, mais quand tu vas chercher des données dans une colonne "contenu", qui est dans une table "news1", c'est mieux quand la table "news1" existe, et qu'il y a bien une colonne "contenu" dans cette table :D


---------------
http://www.alsacreations.com , http://www.openweb.eu.org. Mon CV : http://cv.roane-irkana.net/. Exemple à ne surtout pas suivre : www.worldinternet.be
Reply

Marsh Posté le 28-06-2005 à 12:42:13    

la table news1 existe , je l'ai mise sur un message au dessus , maintenant le champs contenu n'y est pas , mais puisque je ne veut uniquement que les titres des news et la date dans le flux rss , est ce que je suis obligé de mettre un champs contenu ??

Reply

Marsh Posté le 28-06-2005 à 12:43:32    

non, mais a ce moment il ne faut pas le mettre dans le rss alors ^^'
 
Edit : pourquoi avoir laissé un $description=$row["contenu"] alors que tu n'en veux pas ?


Message édité par plainsofpain le 28-06-2005 à 12:44:20

---------------
http://www.alsacreations.com , http://www.openweb.eu.org. Mon CV : http://cv.roane-irkana.net/. Exemple à ne surtout pas suivre : www.worldinternet.be
Reply

Marsh Posté le 28-06-2005 à 13:06:37    

j'en sait rien , je suis perdu , je sent que j'arriverais jamais a le faire ce flux rss.
 
Si vous avez un bon tuto je suis preneur , parce que là je rame  
 
Merci


Message édité par wydook le 28-06-2005 à 13:06:57
Reply

Marsh Posté le 28-06-2005 à 13:19:26    

ben enlèves tes lignes du rss qui affichent la description c'est pas compliqué !


---------------
http://www.alsacreations.com , http://www.openweb.eu.org. Mon CV : http://cv.roane-irkana.net/. Exemple à ne surtout pas suivre : www.worldinternet.be
Reply

Marsh Posté le 28-06-2005 à 13:37:35    

plainsofpain a écrit :

ben enlèves tes lignes du rss qui affichent la description c'est pas compliqué !


Ne faut-il pas obligatoirement une courte description pour les channels RSS ?


---------------
http://yoyo.eurotchat.net -> Wednesday 14 September a 02:00:01 up 43 days, 11:47,  2 users,  load average: 0.07, 0.03, 0.00
Reply

Marsh Posté le 28-06-2005 à 13:49:19    

pareil j'ai ce message d'erreur  
 
Parse error: parse error, unexpected T_SL, expecting ',' or ';' in /home/www/cccf2e7a7c56b5ceef6d1ee2001e19aa/web/rss.php on line 19
 
et j'ai fait ca:
 

Code :
  1. <?
  2. //fichier créant la connexion à MySQL  
  3. include("connect.php" );
  4. // prepare le fichier html pour le mettre en utf8 (xml)  
  5. function cleanText($intext) {
  6.     return utf8_encode(htmlspecialchars(stripslashes($intext)));
  7. }
  8. // on spécifie que le fichier est de la forme xml  
  9. // ne rien afficher avant cette ligne !  
  10. header("Content-Type: text/xml;charset=utf-8" );
  11. $query1 = 'SELECT id, titre, date FROM news1';
  12. $result1 = mysql_query($query1);
  13. $phpversion = phpversion();
  14. // Les informations basique RSS 2.0  
  15. echo <<<END
  16. <?xml version="1.0" encoding="utf-8"?>
  17. <rss version="2.0">
  18.     <channel>
  19.         <title>meteo-world</title>
  20.         <link>http://www.meteo-world.com</link>
  21.         <description>Mon site à moi c'est le meilleur</description>
  22.         <language>fr-FR</language>
  23.         <docs>http://www.meteo-world.com/rss</docs>
  24.         <generator>PHP/$phpversion</generator>
  25. END;
  26. // on affiche les 10 dernieres news  
  27. for ($i = 0; $i < 10 ; $i++) {
  28.     @$row = mysql_fetch_array($result1);
  29.     $titre             = cleanText($row["titre"]);
  30.     $link             = "http://www.meteo-world/news/index.php?num_page=".$row["id"];
  31.  
  32.     $pubDate         = date("r", $row["time"]);
  33. echo <<<END
  34.         <item>
  35.             <title>$titre</title>
  36.             <link>$link</link>
  37.  
  38.             <pubDate>$pubDate</pubDate>
  39.         </item>
  40. END;
  41. }
  42. echo <<<END
  43.     </channel>
  44. </rss>
  45. END;
  46. ?>


 
 
ce code donne ca pour l'instant http://www.meteo-world.com/rss.xml


Message édité par wydook le 28-06-2005 à 16:41:26
Reply

Marsh Posté le 28-06-2005 à 13:53:18    

ton "echo <<<END " c'est quoi ?


---------------
http://www.alsacreations.com , http://www.openweb.eu.org. Mon CV : http://cv.roane-irkana.net/. Exemple à ne surtout pas suivre : www.worldinternet.be
Reply

Marsh Posté le 28-06-2005 à 13:54:03    

enlève les espaces après END à la ligne 19 (cf syntaxe heredoc)

Reply

Marsh Posté le 28-06-2005 à 13:55:33    

Reply

Marsh Posté le 28-06-2005 à 13:56:37    

wydook a écrit :

pareil j'ai ce message d'erreur  
 
Parse error: parse error, unexpected T_SL, expecting ',' or ';' in /home/www/cccf2e7a7c56b5ceef6d1ee2001e19aa/web/rss.php on line 19
 
et j'ai fait ca:
 

Code :
  1. [...]



 
T'es sur sur ? Car la ligne 19 n'a pas changé depuis ton "premier" script [:benou]
 
Sinon évite de filler la version de php via :
<generator>PHP/$phpversion</generator>  
Mets quelque chose dans le genre :
<generator>url de ton site.</generator>  


---------------
http://yoyo.eurotchat.net -> Wednesday 14 September a 02:00:01 up 43 days, 11:47,  2 users,  load average: 0.07, 0.03, 0.00
Reply

Marsh Posté le 28-06-2005 à 13:56:52    

je sait pas .
 
J'ai repris ce tuto http://www.j0k3r.net/php-creer-un- [...] te-21.html  , pour m'aider, mais ca m'aide pas trop

Reply

Marsh Posté le 28-06-2005 à 14:11:39    

ya aussi des espaces en trop a virer après chaque END en fait
 

Citation :

Il est très important de noter que la ligne qui contient l'identifiant de fermeture ne doit contenir aucun autre caractère, hormis, éventuellement, un point-virgule (;).

Reply

Marsh Posté le 28-06-2005 à 14:14:06    

wydook a écrit :

je sait pas .
 
J'ai repris ce tuto http://www.j0k3r.net/php-creer-un- [...] te-21.html  , pour m'aider, mais ca m'aide pas trop


 
C'est qu'une copie du premier avec moins d'explication. A moins qu'il s'est fait copier(ce qui est coutûme chez siteduzero)
 


---------------
http://yoyo.eurotchat.net -> Wednesday 14 September a 02:00:01 up 43 days, 11:47,  2 users,  load average: 0.07, 0.03, 0.00
Reply

Marsh Posté le 28-06-2005 à 14:23:53    

j'ai enlever les espace et maintenant y a cette erreur
 
Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /home/www/cccf2e7a7c56b5ceef6d1ee2001e19aa/web/rss.php on line 34

Reply

Marsh Posté le 28-06-2005 à 14:36:03    

wydook a écrit :

j'ai enlever les espace et maintenant y a cette erreur
 
Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /home/www/cccf2e7a7c56b5ceef6d1ee2001e19aa/web/rss.php on line 34


il reste encore des espaces à enlever, à la ligne 29 je pense

Reply

Marsh Posté le 28-06-2005 à 14:41:49    

la j'ai ca  
 
regardez ici http://www.meteo-world.com/rss.php

Reply

Marsh Posté le 28-06-2005 à 16:40:47    

Je vient de tout changer avec un autre tuto  
 
ca donne donc ca , mais je sait pas comment mettre uniquement le titre et la date des 10 dernieres news (voir ma table quelques messages au dessus)
 

Code :
  1. <?xml version="1.0"
  2. encoding="UTF-8"?>
  3. <!DOCTYPE rss PUBLIC "-//Netscape Communications//DTD RSS
  4. 0.91//EN"
  5. "http://p.moreover.com/xml_dtds/rss-0_91.dtd">
  6. <rss version="0.91">
  7. <channel>
  8. <title>meteo-world
  9. ici</title>
  10. <link>http://www.meteo-world.com</link>
  11. <description>Actualité météo</description>
  12. <language>fr-fr</language>
  13. <copyright>Copyright 2005 Votre Nom
  14. Ici.</copyright>
  15. <managingEditor>votre@email.com</managingEditor>
  16. <webMaster>webmaster@email.com</webMaster>
  17. <image>
  18. <title>Météo-world</title>
  19. <url>http://www.website.com/images/unepetite-image.gif</url>
  20. <link>http://www.votreURLhere.com</link>
  21. <width>32</width>
  22. <height>31</height>
  23. <description>Petite description
  24. Encore</description>
  25. </image>
  26. {$ foreach 10 a in (all)
  27. sortDescendBy .filedDate $}
  28. <item>
  29. <title>{$ a.headline $}</title>
  30. <link>http://www.yourURLhere.com/{$ a.link$}</link>
  31. <description>
  32. <![CDATA[
  33. {$ a.teaser $}
  34. ]]>
  35. </description>
  36. </item>
  37. {$ next $}
  38. </channel>
  39. </rss>

Reply

Marsh Posté le 28-06-2005 à 18:46:24    

Réglé merci  :)


Message édité par wydook le 28-06-2005 à 20:50:09
Reply

Marsh Posté le 29-06-2005 à 11:58:45    

Eventuellement, tu peux donner le lien du tuto qui t'a donné la réponse :D


---------------
http://www.alsacreations.com , http://www.openweb.eu.org. Mon CV : http://cv.roane-irkana.net/. Exemple à ne surtout pas suivre : www.worldinternet.be
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed