Avatar billede Morten Professor
14. december 2015 - 20:26 Der er 19 kommentarer og
1 løsning

RSS mine billeder vises ikke

Hej Eksperter

Jeg har et problem med min rss.
Jeg får nogen fejl så som.

This feed does not validate.
line 1, column 314: Undefined description element: p [help]
... p;varer=Nullermanden</link><description><p>Nullermanden er en god allrou ...
                                            ^
line 1, column 399: XML parsing error: <unknown>:1:411: undefined entity [help]
... miterer lidt forskellige byttedyr.<br />Fluen blev f&oslash;rste gang bu ...


Min kode er:

// posts *******************************
$sql = 'SELECT * FROM vare ORDER BY id DESC';
$query = $pdo->prepare($sql);
$query->execute();
$rs_post = $query->fetchAll();

// The XML structure
$data = '<?xml version="1.0" encoding="UTF-8" ?>';
$data .= '<rss version="2.0">';
$data .= '<channel>';
foreach ($rs_post as $row) {
  $data .= '<item>';
  $data .= '<title>'.$row['vare'].'</title>';
  $data .= '<link>http://www.webshop.flueopskrifter.dk/vare.php?id='.$row['id'].'&amp;uk='.$row['id'].'&amp;u=1&amp;privat='.$_GET['privat'].'&amp;prisid='.$_SERVER['REMOTE_ADDR'].'&amp;brugerid='.$row['id'].'&amp;mainid='.$row['id'].'&amp;idmain='.$row['id'].$_GET['privat'].'&amp;brugernavn='.$_SESSION['MM_Username'].'&amp;varer='.$row['vare'].'</link>';
  $data .= '<description>'.$row['tekst'].'</description>';
  $data .= '<image>';
      $data .= '<url>http://www.test.flueopskrifter.dk/uploads/'.$row['billede'].'</url>';
      $data .= '<link>http://www.test.flueopskrifter.dk</link>';
  $data .= '</image>';
  $data .= '</item>';
}
$data .= '</channel>';
$data .= '</rss>';

header('Content-Type: application/rss+xml');

echo $data;


Og der kommer forkert ip frem når man trykker på linket.

Med venlig hilsen
Morten
Avatar billede Morten Professor
14. december 2015 - 20:28 #1
Avatar billede Morten Professor
14. december 2015 - 20:30 #2
>http://www.test.flueopskrifter.dk/uploads/'.$row['billede'].'</url>';
      $data .= '<link>http://www.test.flueopskrifter.dk</link>';
billederne og også på test.flueopskrifter.dk
Så det har ikke noget med det at gøre
Avatar billede olsensweb.dk Ekspert
14. december 2015 - 20:50 #3
[citat]
This feed does not validate.
line 1, column 314: Undefined description element: p [help]

<description><p>Nullermanden er en god
[/citat]
det er pga den opfatter <p> som et xml tag,
prøv at pakke hele description ind i CDATA

ref http://stackoverflow.com/questions/2784183/what-does-cdata-in-xml-mean

<description>
<![CDATA[
Within this Character Data block I can
use double dashes as much as I want (along with <, &, ', and ")
*and* %MyParamEntity; will be expanded to the text
"Has been expanded" ... however, I can't use
the CEND sequence (if I need to use it I must escape one of the
brackets or the greater-than sign).
]]>
</description>
Avatar billede olsensweb.dk Ekspert
14. december 2015 - 21:28 #4
idet hele taget er det ikke smart at have HTML liggende i databasen, skal man gøre det så indcode det
http://php.net/manual/en/function.htmlentities.php
http://www.w3schools.com/php/func_string_htmlentities.asp


bare en tanke
istedet for at bruge cdata kunne du også bare encode (htmlentities) det der skal stå i description
$data .= '<description>'.htmlentities($row['tekst']).'</description>';
Avatar billede Morten Professor
14. december 2015 - 21:39 #5
Jeps så er det prøvet.
hmm
Der kommer en masse fejl

line 1, column 599: Undefined item element: image (10 occurrences) [help]
... gsom og hurtigt.&lt;/p&gt;</description><image><url>http://www.test.flue ...
                                            ^
line 1, column 997: Invalid character in a URI: http://www.webshop.flueopskrifter.dk/vare.php?id=20&uk=20&u=1&privat=&prisid=128.30.52.88&brugerid=20&mainid=20&idmain=20&brugernavn=&varer=Ræven sort (7 occurrences) [help]
... =20&amp;brugernavn=&amp;varer=Ræven sort</link><description>&lt;p&gt;En  ...
                                            ^
line 1, column 5286: link must be a full and valid URL: http://www.webshop.flueopskrifter.dk/vare.php?id=12&uk=12&u=1&privat=&prisid=128.30.52.88&brugerid=12&mainid=12&idmain=12&brugernavn=&varer=Vaskebjørnen [help]
... 2&amp;brugernavn=&amp;varer=Vaskebjørnen</link><description>&lt;p&gt;Vas ...
                                            ^
line 1, column 6415: Missing channel element: description [help]
... .flueopskrifter.dk</link></image></item></channel></rss>
                                            ^
line 1, column 6415: Missing channel element: link [help]
... .flueopskrifter.dk</link></image></item></channel></rss>
                                            ^
line 1, column 6415: Missing channel element: title [help]
... .flueopskrifter.dk</link></image></item></channel></rss>
                                            ^
In addition, interoperability with the widest range of feed readers could be improved by implementing the following recommendations.
line 1, column 767: item should contain a guid element (10 occurrences) [help]
... ww.test.flueopskrifter.dk</link></image></item><item><title>Ræven sort</ ...
                                            ^
line 1, column 6415: Missing atom:link with rel="self" [help]
Avatar billede olsensweb.dk Ekspert
14. december 2015 - 22:16 #6
ja ja, men du kom længere frem før du fik fejlen :)

[citat]
line 1, column 599: Undefined item element: image (10 occurrences) [help]
... gsom og hurtigt.&lt;/p&gt;<
[/citat]



https://validator.w3.org/feed/docs/rss2.html
    http://static.userland.com/gems/backend/rssTwoExample2.xml


image ligger under <channel> og IKKE under <item>


channel https://validator.w3.org/feed/docs/rss2.html#optionalChannelElements

item    https://validator.w3.org/feed/docs/rss2.html#hrelementsOfLtitemgt


prøv at kalde taget image for img i din <item>
Avatar billede Morten Professor
15. december 2015 - 08:18 #7
Ja det er rigtig ;) det er rigtig godt.

Så har jeg lavet lidt om.

$data = '<?xml version="1.0" encoding="UTF-8" ?>';
$data .= '<rss version="2.0">';
$data .= '<channel>';
$data .= '<title>Skarvens flueshop</title>';
$data .= '<description>Stedet hvor du finder de bedste fluer</description>';
$data .= '<link>http://www.webshop.flueopskrifter.dk</link>';
foreach ($rs_post as $row) {
  $data .= '<item>';
  $data .= '<title>'.$row['vare'].'</title>';
  $data .= '<link>http://www.webshop.flueopskrifter.dk/vare.php?id='.$row['id'].'&amp;uk='.$row['id'].'&amp;u=1&amp;privat='.$_GET['privat'].'&amp;prisid='.$_SERVER['REMOTE_ADDR'].'&amp;brugerid='.$row['id'].'&amp;mainid='.$row['id'].'&amp;idmain='.$row['id'].$_GET['privat'].'&amp;brugernavn='.$_SESSION['MM_Username'].'&amp;varer='.htmlentities($row['vare']).'</link>';
  $data .= '<description>'.htmlentities($row['tekst']).'</description>';
  $data .= '<img>';
      $data .= '<url>'.'http://www.test.flueopskrifter.dk/uploads/'.$row['billede'].'</img>';
     
      $data .= '<width>138</width>';
        $data .= '<height>112</height>';
      $data .= '<link>http://www.test.flueopskrifter.dk</link>';
      $data .= '</img>';
      $data .= '</item>';
 
}
$data .= '</channel>';
$data .= '</rss>';

header('Content-Type: application/rss+xml');

echo $data;


This feed does not validate.
line 1, column 744: Undefined item element: img [help]
... gsom og hurtigt.&lt;/p&gt;</description><img><url>http://www.test.flueop ...
                                            ^
line 1, column 754: XML parsing error: <unknown>:1:814: mismatched tag [help]
... rtigt.&lt;/p&gt;</description><img><url>http://www.test.flueopskrifter.d ...
Avatar billede olsensweb.dk Ekspert
15. december 2015 - 08:28 #8
#7 OK det var også bare et forsøg


du kan se på disse 2 link hvad der er lovligt under items og channel
channel https://validator.w3.org/feed/docs/rss2.html#optionalChannelElements
item    https://validator.w3.org/feed/docs/rss2.html#hrelementsOfLtitemgt

skal du bruge image under items, så er CDATA løsningen
ref http://stackoverflow.com/questions/3208873/images-on-the-description-of-an-rss-item
 
<item><title>June 13  : Cool Clear Waters</title>
<link>http://www.whitegrass.com/report.html</link>
<description>
<![CDATA[<img align="left" hspace="5" src="http://www.whitegrass.com/June 2011/IMGP9201LG.jpg"/>
Work a little, play a little, dream into summer, celebrate a great winter gone by, keep movin'... <br />]]>
</description>
<guid isPermaLink="false">http://www.mcgurrin.com/whitegrass.xml</guid>
<pubDate>Tue, 14 Jun 2011 01:32:00 GMT</pubDate></item>
Avatar billede Morten Professor
15. december 2015 - 08:55 #9
<![CDATA['<img align="left" hspace="5" src="http://www.test.flueopskrifter.dk/uploads/'.$row['billede'].]];
Hvad gør jeg forkert der
Avatar billede olsensweb.dk Ekspert
15. december 2015 - 08:55 #10
du må også kunne bruge htmlentities
prøv dette (utested)
 
// posts *******************************
$sql = 'SELECT * FROM vare ORDER BY id DESC';
$query = $pdo->prepare($sql);
$query->execute();
$rs_post = $query->fetchAll();

// The XML structure
$data = '<?xml version="1.0" encoding="UTF-8" ?>';
$data .= '<rss version="2.0">';
$data .= '<channel>';
foreach ($rs_post as $row) {
$data .= '<item>';
    $data .= '<title>'.$row['vare'].'</title>';
    $data .= '<link>http://www.webshop.flueopskrifter.dk/vare.php?id='.$row['id'].'&amp;uk='.$row['id'].'&amp;u=1&amp;privat='.$_GET['privat'].'&amp;prisid='.$_SERVER['REMOTE_ADDR'].'&amp;brugerid='.$row['id'].'&amp;mainid='.$row['id'].'&amp;idmain='.$row['id'].$_GET['privat'].'&amp;brugernavn='.$_SESSION['MM_Username'].'&amp;varer='.$row['vare'].'</link>';
    $data .= '<description>'.htmlentities($row['tekst']);
        $str= '<image>';
        $str .= '<url>http://www.test.flueopskrifter.dk/uploads/'.$row['billede'].'</url>';
        $str .= '<link>http://www.test.flueopskrifter.dk</link>';
        $str .= '</image>'; 
        $data .= htmlentities($str);
    $data .='</description>'; 
$data .= '</item>';
}
$data .= '</channel>';
$data .= '</rss>';

header('Content-Type: application/rss+xml');

echo $data;


senere skal du nok bruge http://php.net/manual/en/function.html-entity-decode.php til at decode data


ref
Avatar billede Morten Professor
15. december 2015 - 08:59 #11
$data .= <![CDATA['<img align="left" hspace="5" src="http://www.whitegrass.com/June 2011/IMGP9201LG.jpg"/>']];
Virker heller ikke :(
Avatar billede Morten Professor
15. december 2015 - 09:03 #12
Prøvede        $str= '<image>';
        $str .= '<url>http://www.test.flueopskrifter.dk/uploads/'.$row['billede'].'</url>';
        $str .= '<link>http://www.test.flueopskrifter.dk</link>';
        $str .= '</image>'; 
        $data .= htmlentities($str);

Men virkede desværre ikke
den kommer med denne fejl
line 1, column 744: Unexpected Text (20 occurrences) [help]
... gsom og hurtigt.&lt;/p&gt;</description>&lt;image&gt;&lt;url&gt;http://w ...
Avatar billede Morten Professor
15. december 2015 - 09:14 #13
Rettede det med paremeter


$data = '<?xml version="1.0" encoding="UTF-8" ?>';
$data .= '<rss version="2.0">';
$data .= '<channel>';
$data .= '<title>Skarvens flueshop</title>';
$data .= '<description>Stedet hvor du finder de bedste fluer</description>';
$data .= '<link>http://www.webshop.flueopskrifter.dk</link>';
foreach ($rs_post as $row) {
  $data .= '<item>';
  $data .= '<title>'.htmlentities($row['vare']).'</title>';
  $data .= '<link>http://www.webshop.flueopskrifter.dk</link>';
  $data .= '<description>'.htmlentities($row['tekst']).'</description>';
      $data .= '<img>http://www.whitegrass.com/June 2011/IMGP9201LG.jpg</img>';
      $data .= '<guid>http://www.test.flueopskrifter.dk/uploads/'.$row['billede'].'</guid>';
      $data .= '</item>';
 
}
$data .= '</channel>';
$data .= '</rss>';

header('Content-Type: application/rss+xml');

echo $data;
Avatar billede olsensweb.dk Ekspert
15. december 2015 - 09:17 #14
prøv dette (utested)

// posts *******************************
$sql = 'SELECT * FROM vare ORDER BY id DESC';
$query = $pdo->prepare($sql);
$query->execute();
$rs_post = $query->fetchAll();

// The XML structure
$data = '<?xml version="1.0" encoding="UTF-8" ?>';
$data .= '<rss version="2.0">';
$data .= '<channel>';
$data .= '<title>Skarvens flueshop</title>';
$data .= '<description>Stedet hvor du finder de bedste fluer</description>';
$data .= '<link>http://www.webshop.flueopskrifter.dk</link>';
foreach ($rs_post as $row) {
  $data .= '<item>';
  $data .= '<title>'.$row['vare'].'</title>';
  $data .= '<link>http://www.webshop.flueopskrifter.dk/vare.php?id='.$row['id'].'&amp;uk='.$row['id'].'&amp;u=1&amp;privat='.$_GET['privat'].'&amp;prisid='.$_SERVER['REMOTE_ADDR'].'&amp;brugerid='.$row['id'].'&amp;mainid='.$row['id'].'&amp;idmain='.$row['id'].$_GET['privat'].'&amp;brugernavn='.$_SESSION['MM_Username'].'&amp;varer='.htmlentities($row['vare']).'</link>';
  $data .= '<description>'.htmlentities($row['tekst']).'</description>';
        $data .= "<![CDATA[";
        $data .= '<image>';   
        $data .= '<url>'.'http://www.test.flueopskrifter.dk/uploads/'.$row['billede'].'</img>';
        $data .= '<width>138</width>';
        $data .= '<height>112</height>';
        $data .= '<link>http://www.test.flueopskrifter.dk</link>';
        $data .= '</image>';
        $data .= "]]>";
  $data .= '</item>';
 
}
$data .= '</channel>';
$data .= '</rss>';

header('Content-Type: application/rss+xml');

echo $data;


alternativt må du lige lave en sql dump af vare tabellen, så det kan testes
Avatar billede Morten Professor
15. december 2015 - 09:26 #15
Prøvede den lige af
line 1, column 753: Unexpected Text [help]
... urtigt.&lt;/p&gt;</description><![CDATA[<image><url>http://www.test.flue ...
                                            ^
line 1, column 1138: XML parsing error: <unknown>:1:1145: undefined entity [help]
... id=20&amp;idmain=20&amp;brugernavn=&amp;varer=R&Atilde;&brvbar;ven sort< ...
                                            ^
In addition, interoperability with the widest range of feed readers could be improved by implementing the following recommendation.
line 1, column 924: item should contain a guid element [help]
Avatar billede Morten Professor
15. december 2015 - 09:42 #16
ine 1, column 753: Unexpected Text [help]
... urtigt.&lt;/p&gt;</description><![CDATA[<image>http://www.test.flueopskr ...
                                            ^
line 1, column 1114: XML parsing error: <unknown>:1:1121: undefined entity [help]
... id=20&amp;idmain=20&amp;brugernavn=&amp;varer=R&Atilde;&brvbar;ven sort< ..
Avatar billede Morten Professor
15. december 2015 - 10:04 #17
Lavede en test dump der er ikke nogen fejl
Avatar billede Morten Professor
17. december 2015 - 12:15 #18
Lukker tråd
Avatar billede olsensweb.dk Ekspert
17. december 2015 - 12:31 #19
hvad blev løsningen ??
Avatar billede Morten Professor
17. december 2015 - 20:01 #20
Blev til noget jeg startede med, du kan se det på webshop.flueopskrifter.dk
Så fik har jeg det hele med.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester