Création d'un flux RSS (problème d'affichage)

Chewy
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 7
Inscription: 22 Fév 2010

Création d'un flux RSS (problème d'affichage)

Message le Lun Fév 22, 2010 23:58

Bonjour à tous,

Je viens vers vous car j'ai besoin d'aide après avoir bien galéré.

Je souhaite créer un flux RSS pour mon site afin de permettre aux visiteurs de pouvoir suivre les actualités qui sont mises en ligne chaque jour.
Je me suis inspiré de la méthode "Création et lecture de flux RSS 2.0 en PHP" (http://ghostdogpr.developpez.com/articles/rss/) , et je me retrouve bloqué. Etant assez novice dans tout ce qui est PHP, XML... je dois dire que je galère complet.

Quelques explications sur le fonctionnement de mon site : pour ajouter des news sur mon site, j'ai une base de données MySQL via phpMyAdmin avec un back office pour me permettre d'ajouter une actu (titre, image, contenu...) le plus simplement possible. Pour la version de PHP, il s'agit de la version 4. Et donc je souhaiterais que dès que j'ajoute une actu sur le site, cet ajout se fasse également dans le fichier XML.
Actuellement, seule les dates s'affichent dans le fichier XML. Vous pouvez le voir à cette adresse : http://www.cryptoseries.fr/rss/actus.xml.
Le problème viendrait peut-être de cette partie de code quand j'essaye d'appeler les champs de la base où seule la date est vraiment appelée ou créée.

$xml .= '<item>';
$xml .= '<title>'.$tab["titre"].'</title>';
$xml .= '<link>http://www.cryptoseries.fr/</link>';
$xml .= '<pubDate>'.$date.' GMT</pubDate>';
$xml .= '<description>'.$tab["content"].'</description>';
$xml .= '</item>';

Quand je laisse comme ça, ça donne ce qui est affiché avec seulement les dates dans le fichier xml. Dès que je change cet appel en remplaçant "titre" par "Title" et "content" par "Contenu" (qui sont pourtant les noms des champs dans ma base), il n'y a plus aucun affichage. Bizarre tout ça. Du coup je suis vraiment perdu...

J'espère que certains d'entre vous pourront m'éclairer. Je reste bien entendu à votre disposition pour en discuter, vous apporter plus d'éléments, etc. Bref n'hésitez pas et surtout merci d'avance pour vos contributions.

@+
Chewy


nza2k
WRInaute impliqué
WRInaute impliqué
 
Messages: 771
Inscription: 16 Jan 2004

Re: Création d'un flux RSS (problème d'affichage)

Message le Mar Fév 23, 2010 1:45

Hello,

Je ne sais pas si ton site est récent ou pas, si tu as bcp de contenu... Mais as-tu réfléchi à installer un CMS gratuit pour gérer ton contenu et obtenir différentes fonctionnalités clé en main. Je pense par exemple à Wordpress : gratuit et open source :)

Sinon, t'as essayé avec ça autour de tes champs textes :
<![CDATA[ ]]>

Et ta variable $date, elle sort d'où ? Pourquoi n'est-elle pas dans un tableau comme content et title ? N'aurais-tu pas fait un extract() auparavant ?

Emorej
WRInaute discret
WRInaute discret
 
Messages: 83
Inscription: 25 Oct 2007

Re: Création d'un flux RSS (problème d'affichage)

Message le Mar Fév 23, 2010 8:48

Il faudrait que tu nous montres la partie de ton code qui remplit $tab. Manifestement $tab est vide quand tu affectes une valeur à $xml.

Chewy
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 7
Inscription: 22 Fév 2010

Re: Création d'un flux RSS (problème d'affichage)

Message le Mar Fév 23, 2010 9:31

Bonjour,

Mon site a presque 4 ans et il y a pas mal de contenu. L'idée du CMS, j'y ai pensé mais j'aime l'idée de devoir tout faire à la main même si je galère pas mal :lol:

nza2k a écrit:<![CDATA[ ]]>

Je vais faire le test et je vous tiendrai au courant.

nza2k a écrit:Et ta variable $date, elle sort d'où ? Pourquoi n'est-elle pas dans un tableau comme content et title ? N'aurais-tu pas fait un extract() auparavant ?

Emorej a écrit:Il faudrait que tu nous montres la partie de ton code qui remplit $tab. Manifestement $tab est vide quand tu affectes une valeur à $xml.


Donc voici la partie de mon code avec $tab (tout ce qui concerne xml en fait) en espérant que ça pourra vous aider. Sachant que ce code est placé dans le fichier qui envoit des données (actualités) vers la BDD.

Code: Tout sélectionner
$xml = '<?xml version="1.0" encoding="iso-8859-1"?><rss version="2.0">';
      $xml .= '<channel>';
      $xml .= '<title>Les actualités séries de la Crypte aux séries</title>';
      $xml .= '<link>http://www.cryptoseries.fr</link>';
      $xml .= '<description>Retrouvez toutes les actualités de vos séries anciennes et récentes sur le flux de la Crypte aux séries</description>';
      
      $res=mysql_query("SELECT * FROM news ORDER BY id DESC LIMIT 10") or die("Erreur SQL : ".mysql_error());

      // extraction des informations et ajout au contenu
      while($tab=mysql_fetch_array($res)){
         $date=date("D, d M Y H:i:s", strtotime($tab["date"]));

         $xml .= '<item>';
         $xml .= '<title>'.$tab["titre"].'</title>';
         $xml .= '<link>http://www.cryptoseries.fr/</link>';
         $xml .= '<pubDate>'.$date.' GMT</pubDate>';
         $xml .= '<description>'.$tab["content"].'</description>';
         $xml .= '</item>';   
      }

      $xml .= '</channel>';
      $xml .= '</rss>';

      $fp = fopen("../../rss/actus.xml", 'w+');
      fputs($fp, $xml);
      fclose($fp);
      mysql_close();


Vous remerciant par avance pour votre aide.

Emorej
WRInaute discret
WRInaute discret
 
Messages: 83
Inscription: 25 Oct 2007

Re: Création d'un flux RSS (problème d'affichage)

Message le Mar Fév 23, 2010 9:50

Et si tu ajoutes un
Code: Tout sélectionner
var_dump($tab);
juste au début de ta boucle while, qu'est ce qu'il affiche ?


tryan
WRInaute passionné
WRInaute passionné
 
Messages: 2355
Inscription: 20 Fév 2005

Re: Création d'un flux RSS (problème d'affichage)

Message le Mar Fév 23, 2010 10:33

Salut,

Pour moi, soit ta requête est erroné, (ce qui m'étonnerai puisque ta variable $tab["date"] fonctionne), soit une ou des variables en sortit provoque un bug. Essaye d'appliquer un <![CDATA[*****]]> sur les titres et descriptions.
Code: Tout sélectionner
$xml .= '<title><![CDATA['.$tab["titre"].']]></title>';
$xml .= '<description><![CDATA['.$tab["content"].']]></description>';


Par ailleurs ta ligne $xml .= '<link>http://www.cryptoseries.fr/</link>'; n'est pas correcte ... elle est censé indiquer l'url des pages concernées et non l'index de ton site.

Chewy
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 7
Inscription: 22 Fév 2010

Re: Création d'un flux RSS (problème d'affichage)

Message le Mar Fév 23, 2010 10:47

Emorej a écrit:Et si tu ajoutes un
Code: Tout sélectionner
var_dump($tab);
juste au début de ta boucle while, qu'est ce qu'il affiche ?


Alors ça m'affiche les infos mais dans la page du code php et xml, c'est à dire la page de gestion qui envoi les données à la BDD.

tryan a écrit:Salut,

Pour moi, soit ta requête est erroné, (ce qui m'étonnerai puisque ta variable $tab["date"] fonctionne), soit une ou des variables en sortit provoque un bug. Essaye d'appliquer un <![CDATA[*****]]> sur les titres et descriptions.
Code: Tout sélectionner
$xml .= '<title><![CDATA['.$tab["titre"].']]></title>';
$xml .= '<description><![CDATA['.$tab["content"].']]></description>';


ça n'affiche rien, voici ce que ça me donne :
Code: Tout sélectionner
<description>
- <![CDATA[
  ]]>
  </description>


tryan a écrit:Par ailleurs ta ligne $xml .= '<link>http://www.cryptoseries.fr/</link>'; n'est pas correcte ... elle est censé indiquer l'url des pages concernées et non l'index de ton site.

Merci pour l'info, je vais essayer d'y remédier.

C'est vraiment galère tout ça, mais merci pours vos contributions.


tryan
WRInaute passionné
WRInaute passionné
 
Messages: 2355
Inscription: 20 Fév 2005

Re: Création d'un flux RSS (problème d'affichage)

Message le Mar Fév 23, 2010 10:58

ça donne quoi un echo $tab["titre"]; et un echo de $tab["content"]; dans ta boucle ?
Tu as quelque chose qui ressort ou c'est le vide total?

Chewy
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 7
Inscription: 22 Fév 2010

Re: Création d'un flux RSS (problème d'affichage)

Message le Mar Fév 23, 2010 11:13

C'est le vide total.
je l'ai inséré comme ceci :

Code: Tout sélectionner
// extraction des informations et ajout au contenu
      while($tab=mysql_fetch_array($res)){
         echo $tab["titre"];
         $date=date("D, d M Y H:i:s", strtotime($tab["date"]));

         $xml .= '<item>';
         $xml .= '<title>'.$tab["titre"].'</title>';
         $xml .= '<link>http://www.cryptoseries.fr/</link>';
         $xml .= '<pubDate>'.$date.' GMT</pubDate>';
         $xml .= '<description>'.$tab["content"].'</description>';
         $xml .= '</item>';   
      }

Emorej
WRInaute discret
WRInaute discret
 
Messages: 83
Inscription: 25 Oct 2007

Re: Création d'un flux RSS (problème d'affichage)

Message le Mar Fév 23, 2010 11:40

Les indices de $tab doivent contenir l'exact libellé des champs de ta table news : est ce que c'est bien le cas ? ($tab["nom du champ de table news"])

silef
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 317
Inscription: 13 Jan 2006

Re: Création d'un flux RSS (problème d'affichage)

Message le Mar Fév 23, 2010 12:29

A la place de
Code: Tout sélectionner
echo $tab["titre"];

Fais
Code: Tout sélectionner
print_r($tab);


Ca te permettra déjà de voir les index qui sont récupérés lors de ta requête et de vérifier que cela ne vient pas de titre ou content.


anemone-clown
WRInaute passionné
WRInaute passionné
 
Messages: 1277
Inscription: 11 Nov 2007

Re: Création d'un flux RSS (problème d'affichage)

Message le Mar Fév 23, 2010 13:03

silef a écrit:Fais
Code: Tout sélectionner
print_r($tab);

Bien joué! Au moins, il y aura vérification que la requête SQL renvoie quelque chose... Quoiqu'à la base, il faudrait mieux tester $res pour savoir si c'est vide ou rempli.

silef
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 317
Inscription: 13 Jan 2006

Re: Création d'un flux RSS (problème d'affichage)

Message le Mar Fév 23, 2010 14:10

Ben la requête semble tourner puisque le flux n'affiche que les dates, c'est pour ça que je me suis intéressé à $tab directement.

Chewy
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 7
Inscription: 22 Fév 2010

Re: Création d'un flux RSS (problème d'affichage)

Message le Mar Fév 23, 2010 14:51

Etant au boulot je testerai tout ça ce soir.
En tout cas, merci pour votre réactivité, ça fait plaisir car je me sentais bien seul avec ce problème que je n'arrive pas à régler depuis déjà pas mal de temps.

Je vous tiens au courant dans la soirée.


anemone-clown
WRInaute passionné
WRInaute passionné
 
Messages: 1277
Inscription: 11 Nov 2007

Re: Création d'un flux RSS (problème d'affichage)

Message le Mar Fév 23, 2010 16:56

silef a écrit:flux n'affiche que les dates

Ben oui, mais... on ne sait pas si c'est la bonne date et si elle varie à chaque occurence. :wink: Le traitement préalable par la fonction Date va forcément renvoyer un résultat (quel qu'il soit), d'où son affichage dans l'echo.

Création d'un flux RSS (problème d'affichage)

Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité