Safari zeigt RSS-Feed nicht fehlerlos an

M

master_p

Aktives Mitglied
Thread Starter
Dabei seit
31.01.2005
Beiträge
1.069
Reaktionspunkte
24
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:
Safari kann die Seite „feed://software-schmie.de/website/rss.php“ nicht öffnen. Fehler: „Unbekannter Fehler“ (NSURLErrorDomain:-1)

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:
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
 
Zurück
Oben Unten