Safari zeigt RSS-Feed nicht fehlerlos an

Dieses Thema im Forum "Web-Programmierung" wurde erstellt von master_p, 20.03.2006.

  1. master_p

    master_p Thread Starter MacUser Mitglied

    Beiträge:
    1.065
    Zustimmungen:
    23
    MacUser seit:
    31.01.2005
    Hallo,

    ich habe heute für meine (News-)Seite einen RSS-Feed programmiert (in PHP). Das ganze läuft nur leider nicht einwandfrei. Folgendes steht in der RSS-Datei drin:

    Code:
    <?
    header("Content-type: application/xml");
    ?>
    <rss version="2.0">
    	<channel>
    		<title>Software-Schmie.de News</title>
    		<link>http://www.software-schmie.de/</link>
    		<description>Dieser RSS-Feed umfasst die Nachrichten der Website www.Software-Schmie.de</description>
    		<author>Philip Hahn</author>
    		<?
    		include "inc/config.php";
    		$query = "SELECT *, UNIX_TIMESTAMP(news_datetime) AS news_unix FROM website_news ORDER BY news_datetime DESC";
    		$res = mysql_query($query);
    		$num = mysql_num_rows($res);
    
    		for ($i=0; $i<$num; $i++) {
    			$row = mysql_fetch_array($res);
    			print '<item>
    						<title>'.htmlentities($row[news_title]).'</title>
    						<link>http://www.software-schmie.de/website/index.php?act=news&news='.$row[news_id].'</link>
    						<description>'.htmlentities(nl2br($row[news_text])).'</description>
    						<pubDate>'.date('D, d M Y H:i O', $row[news_unix]).'</pubDate>
    					</item>';
    		}
    	?>
    	</channel>
    </rss>
    Das Problem ist jetzt, dass Safari2.0 den RSS-Feed nicht darstellen kann. Das RSS-Symbol taucht oben auf und wenn man draufklickt, dann kommt eine Fehlermeldung:
    Wenn ich allerdings die PHP-Zeilen mit der <item>-Ausgabe deaktiviere, dann geht's wunderbar. Es reicht sogar, wenn ich die $row-Variablen rausnehme und quasi nur noch die Tags übergebe. Dann zeigt er logischer weise keine Nachrichten mehr an, aber er öffnet den RSS-Modus. Wenn man jetzt die Zeilen wieder aktiviert, dann stellt er diese auch korrekt dar und zeigt meine Nachrichten in RSS-Form. Wenn man den Browser allerdings zu macht und dann wieder draufgeht, dann geht's wieder nicht.

    Mit einem "ordentlichen" Newsreader geht es aber auch, wenn alles aktiviert wird. Vielleicht sieht ja jemand den Fehler, der mir hier verborgen bleibt.

    Gruß Philip

    Feed (geht): feed://software-schmie.de/website/rss2.php
    Feed (geht nicht): feed://software-schmie.de/website/rss2.php
     
    Zuletzt bearbeitet: 20.03.2006
  2. master_p

    master_p Thread Starter MacUser Mitglied

    Beiträge:
    1.065
    Zustimmungen:
    23
    MacUser seit:
    31.01.2005
    Okay, hab's wohl selbst gelöst. Scheint an der XML-Kodierung gelegen zu haben. Der Code sieht jetzt so aus:

    Code:
    <?
    header("Content-type: text/xml");
    echo '<?xml version="1.0" encoding="ISO-8859-1"?>'; ?>
    ?>
    <rss version="2.0">
    	<channel>
    		<title>Software-Schmie.de News</title>
    		<link>http://www.software-schmie.de/</link>
    		<description>Dieser RSS-Feed umfasst die Nachrichten der Website www.Software-Schmie.de</description>
    		<author>Philip Hahn</author>
    		<language>de-de</language>
    		<?PHP
    		include "inc/config.php";
    		$query = "SELECT *, UNIX_TIMESTAMP(news_datetime) AS news_unix FROM website_news ORDER BY news_datetime DESC";
    		$res = mysql_query($query);
    		$num = mysql_num_rows($res);
    
    		for ($i=0; $i<$num; $i++) {
    			$row = mysql_fetch_array($res);
    			print '<item>
    						<title>'.htmlentities($row[news_title]).'</title>
    						<link>http://www.software-schmie.de/website/index.php?act=news&news='.$row[news_id].'</link>
    						<description>'.htmlentities(nl2br($row[news_text])).'</description>
    						<pubDate>'.date('D, d M Y H:i O', $row[news_unix]).'</pubDate>
    					</item>';
    		}
    	?>
    	</channel>
    </rss>
    Wäre schön, wenn ihr das auch nochmal überprüfen könntet.

    Gruß Philip
     
Die Seite wird geladen...

Diese Seite empfehlen