5568 sujets

Sémantique web et HTML

Bonjour à tous !

J'ai un problème pour la validation W3C de cette page, elle fait appel à du contenu flux RSS que je contrôle pas (PHP) :

http://www.webseb.fr/remy/index.php

J'ai cherché sur le forum ou sur le net (dsl si le sujet existe...)

Merci d'avance !
Modifié par even (19 Feb 2009 - 11:32)
Bonjour,

Il suffit parfois de lire les message d'erreur :
a écrit :
Line 56, Column 200: document type does not allow element "object" here; missing one of "p", "h1", "h2", "h3", "h4", "h5", "h6", "div", "address", "fieldset", "ins", "del" start-tag.


Cette portion de code :
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,28,0" width="914" height="160">
      <param name="movie" value="flash/anim.swf" />
      <param name="quality" value="high" />
      <param name="wmode" value="transparent" />
    </object>

Doit être contenu directement dans un des éléments ci-dessus nommés (donc pas directement dans le noscript).


a écrit :
Line 68, Column 57: character "&amp;" is the first character of a delimiter but occurred as data.

le caractère "&" doit être écrit &amp; car, seul il annonce un caractère encodé. Si les données récupérée le sont depuis une source externe, il suffit de mettre en place une petite fonction PHP qui remplacera "& " par "&amp;"


a écrit :
Line 108, Column 85: there is no attribute "target".

Le message est clair, "target" n'est pas un attribut valide en (X)HTML strict. Si tu tiens absolument à l'utiliser, il faut changer de doctype.


a écrit :
Line 108, Column 131: there is no attribute "onClick".

Idem


a écrit :
Line 68, Column 58: XML Parsing Error: xmlParseEntityRef: no name.

ces erreurs découlent du & non encodé.
Modifié par Laurie-Anne (19 Feb 2009 - 10:49)
Merci Laurie-Anne ! (erreur commune corrigée, me reste plus qu'à trouvé un script pour le flux PHP+RSS)

Désolé Raphael, c'est corrigé.
Merci !

Je cherche, je cherche, plus que 5 erreurs, je fais des essais pour ces fichus flux rss avec ces fichus & et autres... mais rien de concluant pour l'instant... Mais le php j'y connais pas grand chose...
Modifié par even (19 Feb 2009 - 12:12)
noscript corrigé ! Ouais...

Reste ce foutu PHP+RSS... arf... Je continue à cherché...
Modifié par even (19 Feb 2009 - 12:24)
$link = str_replace('&', '%26', $link);

$separator = '& a m p ;';

J'ai trouvé ce genre de code mais aucune idée vu mon ignorance en PHP comment l'appliquer...
J'essaye ça aussi :

$search = array(' ', '&');
$replace = array('&nbsp;', '&amp;');

echo str_replace($search, $replace);
Merci, voilà le div ou est placé le php :

<div class="h11" id="bloc7"><?php
 
require_once "magpierss/rss_fetch.inc";
$fichier_xml = "http://rss.feedsportal.com/c/596/f/7534/index.rss";
$nombre_element = 1;


$rss = fetch_rss($fichier_xml);

if (is_array($rss->items))

    {
    $liste = array_slice($rss->items, 0, $nombre_element);
	

    echo "<b>",$rss->channel['title'],"</b><br /><br />\n";
    foreach ($liste as $item ) {


        $title = $item[title]; $url = $item[link]; 
	
		$pubdate = $item[pubdate];
        $category = $item[category];

        $pubdate = date("d/m/Y", strtotime($pubdate));
		
        echo "$pubdate :<a href='$url' onclick='window.open(this.href);return false'>$title</a> ($category)<br /><br />\n";
		
        } 

    } 

?> </div>


et je dois placé :
echo str_replace('&', '&');


Je fais des essais à savoir ou le placé correctement et je reviens...
tu dois placer le code comme ceci :

echo str_replace('&', '&amp;', $pubdate) .":<a href='".str_replace('&', '&amps;', $url)."' onclick='window.open(this.href);return false'>".str_replace('&', '&amps;', $title)."</a> (".str_replace('&', '&amps;', $category.")<br /><br />\n";


dans le str_replace la seconde valeur doit être "& amp;" (sans espace). Tu dois le placer ainsi sur toute variable de texte que tu va afficher et qui pourrait posser probleme (en général les url, mais parfois tous les textes)
Merci, tu en connais des choses !

j'ai essayé avec ça :

<div class="h11" id="bloc7"><?php
 
require_once "magpierss/rss_fetch.inc";
$fichier_xml = "http://rss.feedsportal.com/c/596/f/7534/index.rss";
$nombre_element = 1;


$rss = fetch_rss($fichier_xml);

if (is_array($rss->items))

    {
    $liste = array_slice($rss->items, 0, $nombre_element);
	

    echo "<b>",$rss->channel['title'],"</b><br /><br />\n";
    foreach ($liste as $item ) {


        $title = $item[title]; $url = $item[link]; 
	
		$pubdate = $item[pubdate];
        $category = $item[category];

        $pubdate = date("d/m/Y", strtotime($pubdate));
		
        echo str_replace('&', '&amp;', $pubdate) .":<a href='".str_replace('&', '&amp;', $url)."'onclick='window.open(this.href);return false'>".str_replace('&', '&amp;', $title)."</a> (".str_replace('&', '&amp;', $category.")<br /><br />\n";
		
        } 

    } 


?> </div>


Mais avec cette erreur en réponse, je suis vraiment pas doué comparé à toi :

Parse error: syntax error, unexpected ';' in /homez.116/webseb/www/remy/index.php on line 90

donc sur la ligne que tu me propose.
Un GRAND MERCI à vous deux !

Je vais essayé de négocier avec mon patron pour vous envoyez une caisse de champagne Smiley lol