IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques et frameworks PHP Discussion :

[DOM XML] Problème avec la validation d'un flux RSS


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Inscrit
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    531
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 531
    Points : 282
    Points
    282
    Par défaut [DOM XML] Problème avec la validation d'un flux RSS
    Bonjour,

    J'essaie d'ajouter un flux RSS sur mon site, mais je n'arrive pas à le valider.

    Je vous donne le code, le code généré, et la liste des erreurs, si vous voulez bien y jeter un oeil ce serait sympa, merci d'avance.

    Code PHP :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
     
    <?php
    header('Content-Type: text/html"; charset=iso-8859-1');
    require_once('./script/connex.php'); 
    echo'
    <rss version="2.0">
    ';
     
    //si c'est la liste des dernières définitions qui est demandée
    if(isset($_GET['article']) AND $_GET['article']==0)
    {
    echo '<channel>'; 
    echo '<title>Derniers articles</title>';
    echo'<link>http://www.monsite.com</link>';
    echo '<description><![CDATA[Nouveaux Articles]]></description>';
    $req="SELECT id,titre,contenu FROM articles ORDER BY id DESC LIMIT 0,10 ";
    $res=mysql_query("$req");
    while($R=mysql_fetch_array($res))
    {  
     $art=stripslashes($R['contenu']); 
      // Le nombre le lettres avant les ...
    $maxL =150;
    if (strlen($art) >= $maxL) 
    {$art= substr($art,0,$maxL) . "..." ; };   
    $art= strip_tags($art);	
    	$titre=stripslashes($R['titre']);
    	$id=$R['id'];
    	echo '
    	<item>
    	<link>http://www.monsite.com/'.$R['id'].'.htm</link>
    
    	<title>'.$titre.'</title>	
    	
    	<description>'.$art.'</description>
    
    	</item>';	
    ;}//ferme whille
    // édition de la fin du fichier XML
    echo'</channel>';
    ;} 
     
    echo '</rss>';
    ?>
    Il y a un autre truc bizarre, quand j'ajoute cette ligne dans les <item>, ça n'affiche plus rien sur la page :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <guid isPermaLink="true">http://www.monsite.com/'.$R['id'].'.htm</guid>

    Ca c'est la liste d'erreur que me renvoie le validateur RSS du W3C :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    This feed does not validate.
     
        *
     
          line 53, column 50: Undefined named entity: eacute (4 occurrences) [help]
     
              	<description>Partie d'une population . Un &eacute;chantillon ...
                                                                ^
     
    In addition, interoperability with the widest range of feed readers could be improved by implementing the following recommendations.
     
        *
     
          Feeds should not be served with the "text/html"" media type [help]
     
     
        *
     
          line 12, column 1: item should contain a guid element (10 occurrences) [help]
     
              	</item>
               ^
     
        *
     
          line 90, column 8: Missing atom:link with rel="self" [help]
     
              	</item></channel></rss>

    Ca c'est le code source de la page générée :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    <rss version="2.0">
    <channel>
    <title>Derniers articles</title>
    <link>http://www.monsite.com</link>
    <description><![CDATA[Nouveaux articles proposés sur mon site]]></description>
     
    <item>
    	<link>http://www.monsite.com/article1.htm</link>
    	 <guid isPermaLink="true">http://www.monsite.com/article1.htm</guid>
    	<title>titre de l'article </title>	
    	<description><![CDATA[150 caractères du premier article...]]</description>
            </item>
     
            <item>
    	<link>http://www.monsite.com/article2.htm</link>
    	<guid isPermaLink="true">http://www.monsite.com/article2.htm</guid>
    	<title>titre de l'article</title>	
    	<description><![CDATA[150 premiers caractères de l'article...]]</description>
             </item>
     
    </channel>
    </rss>

  2. #2
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 098
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 098
    Points : 8 207
    Points
    8 207
    Billets dans le blog
    17
    Par défaut
    Apparemment, outre les recommandations du validateur, c'est l'entité &eacute; dans $art qui pose pb.
    Pourquoi une entité est-elle stockée dans ta BdD ? (pourquoi fais-tu des stripslashes( ) ?...)
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

  3. #3
    Inscrit
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    531
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 531
    Points : 282
    Points
    282
    Par défaut
    Parce que j'encode tout avant insertion avec htmlentities() et c'est la première fois que ça me pose problème.




    C'est résolu en tout cas (et le problème venait bien de là).

  4. #4
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 098
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 098
    Points : 8 207
    Points
    8 207
    Billets dans le blog
    17
    Par défaut
    Citation Envoyé par JackBeauregard Voir le message
    Parce que j'encode tout avant insertion avec htmlentities()
    Mauvaise habitude. Il ne faut utiliser htmlentities( ) / htmlspecialchars( ) que lorsque c'est utile, càd généralement à l'affichage.
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

  5. #5
    Inscrit
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    531
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 531
    Points : 282
    Points
    282
    Par défaut
    Ouaip on me l'avait dit, bah je viens de trouver une raison de le faire

    Merci pour tes réponses

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. problème avec la date dans le flux rss
    Par victoires dans le forum Langage
    Réponses: 1
    Dernier message: 26/01/2012, 18h12
  2. Problème avec la création de mon flux RSS
    Par Ashraam dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 03/11/2007, 14h03
  3. [FLASH 8] [XML] Problème avec XML.load() asynchrone
    Par SSJ17Vegeta dans le forum Flash
    Réponses: 1
    Dernier message: 20/01/2006, 18h47
  4. [XML] Problème avec &
    Par s3r3nity dans le forum Valider
    Réponses: 5
    Dernier message: 21/12/2005, 14h13
  5. Valider fichier XML : problème avec la DTD
    Par SkIllz2k dans le forum Valider
    Réponses: 2
    Dernier message: 26/04/2005, 17h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo