Erreur d'analyse XML pour mon flux RSS dynamique

Bonjours a tous…

J’ESSAIE d’installer un flux rss dynamique (qui affiche les news postées dans ma db) sur mon site… Mais quand j’ouvre mon flux, j’ai l’erreur suivante :

http://www.neo-rammstein.com/rss.php

Voici le code de mon flux :

<? header('Content-type: text/xml'); ?>

<?php
mysql_connect("localhost","db","pw");
mysql_select_db("db");
$sql = mysql_query("SELECT * FROM news ORDER BY id DESC"); 

echo '<?xml version="1.0" encoding="ISO-8859-1"?>
	  <rss version="2.0">
        <channel>
          <title>Neo-Rammstein.com</title>
          <link><lien>http://www.neo-rammstein.com</lien></link>
          <description>Les news postées par Neo-Rammstein.com</description>';

while ($data = mysql_fetch_assoc($sql) ){
   echo '<item>
          <title>' .$data['titre']. '</title>
          <link>http://www.neo-rammstein.com</link>
          <description>' .$data['contenu']. '</description>
         </item>';
}
     
  echo '</channel>
       </rss>';

?>

J’espere que quelqu’un va pouvoir m’aider :slight_smile: Merci

Vire les sauts de ligne. Comme avant de faire un header()

Mmh ca ne change rien… il m’affiche juste les des lignes en plus à coté de : Numéro de ligne 2, Colonne 1…

Reprenons donc :

  1. pas de <?, mais <?php.
  2. En définitive :
<?php
header('Content-type: text/xml; charset=utf-8'); ?>

mysql_connect("localhost","db","pw");
mysql_select_db("db");
$sql = mysql_query("SELECT * FROM news ORDER BY id DESC"); 

echo '<?xml version="1.0" encoding="utf-8"?>';
?><rss version="2.0">
 <channel>
 <title>Neo-Rammstein.com</title>
 <link><lien>http://www.neo-rammstein.com</lien></link>
 <description>Les news postées par Neo-Rammstein.com</description><?php
while ($data = mysql_fetch_assoc($sql) ){
?><item>
 <title><?php echo $data['titre']; ?></title>
 <link>http://www.neo-rammstein.com</link>
 <description><?php echo $data['contenu']; ?></description>
 </item><?php
}
?></channel>
 </rss>

Mhh il me semble que c’est encore pire ca nan ?
la partie de connection a la db n’est meme pas entre balise <?php ?>, ainsi que le echo =/

En tout cas j’ai essayer ton code, ca me donne une page blanche
Edité le 10/08/2009 à 20:00

Vire le “?>” après le “header()”.

Dreamweaver me souligne quelques lignes en jaune (pour signaler des probleme de syntaxe)
voici ce que ca donne : www.neo-rammstein.com…

Ils sont où tes problèmes de syntaxe ?

(sinon ça marche, y a plus qu’à corriger le contenu au niveau des accents)

S’il vout plait :slight_smile:

http://img10.imageshack.us/img10/7614/sanstitre1zqf.jpg

Ah. Ben c’est que tu utilises Dreamweaver pour faire du HTML… pas du XML et encore moins le sous ensemble qu’est le RSS.

Solution : utilise un vrai logiciel, jedit, vim, etc… :slight_smile:

Bah c’est un fichier php comme un autre… je vois pas en quoi DW pose probleme. Il y a un probleme dans le code c’est tout. Ce serai malheureu de pas savoir faire un flux rss avec DW…

Parce que ce boulet de DW crois que c’est du HTML alors que c’est du XML. Moi j’utilise pas ce genre de logiciel, donc débrouille toi avec :slight_smile:

Bah si selon toi ce code est bon, pq j’ai toujours des problemes d’affichages avec Firefox (IE n’affiche même rien) ?

Les losanges ? C’est lié à l’encodage.

Si FX s’affiche bien, il ne devrait à priori pas d’avoir de problème sous Fx.

Bonne nouvelle, j’ai tout simplement rearrangé le code a ma facon… et ca passe bcp mieu sous Firefox. J’ai également changé l’encodage :
www.neo-rammstein.com…

Il y a encore un probleme de caractère avec les " ", et Dreamweaver me souligne encore 2 balises… Mais mon flus fonctionne :smiley:

voici le code maintenant :

<?php
header('Content-type: text/xml; charset=ISO-8859-1');

mysql_connect("localhost","base","pwd");
mysql_select_db("base");
$sql = mysql_query("SELECT * FROM news ORDER BY id DESC"); 

echo '<?xml version="1.0" encoding="ISO-8859-1"?>'; ?>

<rss version="2.0">
<channel>
    <title>Neo-Rammstein.com</title>
    <link>http://www.neo-rammstein.com</link>
    <description>Les news postées par Neo-Rammstein.com</description>
    
    <?php while ($data = mysql_fetch_assoc($sql) ){ ?>
        <item>
            <title><?php echo $data['titre']; ?></title>
            <link>http://www.neo-rammstein.com</link>
            <description><?php echo $data['contenu']; ?></description>
            <guid>http://www.neo-rammstein.com/rss.php</guid>
        </item>
    <?php
        }
    ?>
</channel>
</rss>

Edité le 13/08/2009 à 15:53

Faut eviter de donner ses mots de passe sur un forum publique hein :slight_smile:

Arg F**** j’ai toujours le meme probleme quand je colle mon code…
En meme temps cest pas le code de mon compte bancaire :wink:

Bah encore heureux :slight_smile:
Mais bon ca peut toujours donner des idées sur le genre de pswd que t’utilises et tout.

Yep, j’espere que personne s’est attardé dessu ^^

Sinon ta pas une idée pour mon ptit souci de synthaxe xml? :stuck_out_tongue:

C’est aussi pourquoi il faut faire une fonction/classe d’include qui fait ça (se connecter), ou qui stocke les mots de passe ailleurs, ainsi même si tu colle le mysql_connect, tu risques pas d’afficher les identifiants de connexion.