RSS Feed wird nicht angezeigt

Hallo Community,

ich habe ein Problem. Ich habe mir mit PHP einen dynamischen RSS Feed erstellt.
Nun wird er auch als RSS Feed erkannt. Jedoch zeigt er mir keine items an. Kann mir einer helfen ?

Hier mal der Quellcode meiner Datei

<?php 
header ("Content-Type:text/xml");
include('inc/db.php');
echo '<?xml version="1.0" encoding="ISO-8859-1"?>';
echo '<rss version="2.0">';
echo '<channel> 
<title>Apple-Talk</title>
<description>Die neusten News über Apple & Co.</description>
<language>de-de</language>
<copyright>2011 Apple-Talk</copyright>';
							
							if(isset($_GET['new'])){
								$new = intval($_GET['new']);
							}else{
								$new = 0;
							}
							
							$news_first = $new ? $new : 9999999999;
							$news_query = ("SELECT * FROM news WHERE id <= '".$news_first."' ORDER BY `id` desc LIMIT 6");
							$news_query = mysql_query($news_query);
							$counter = 1;
							
							while($counter<=20000000000000000000000 && $news=mysql_fetch_array($news_query)){
								if($counter == 1){
									echo '';
								}else{
									echo '';
								}
					
$query4 = "SELECT avatar FROM users WHERE username='".$news['author']."'";
$result4 = mysql_query($query4);
while ($row4 = mysql_fetch_array($result4))
$avatar = $row4["avatar"];
//$news['content']=str_replace("\n","<br>",$news['content']);
$news['content'] = preg_replace('#\\[url=(.*)\\](.*)\\[/url\]#Uis', '\\2', $news['content']);
$news['content'] = preg_replace('#\\[video=(.*)\\](.*)\\[/video\]#Uis', 'http://www.youtube.com/watch?v=\\1', $news['content']);

echo '

<item>
<title>'.$news['title'].'</title>
<description>'.$news['content'].'</description>
<link>http://apple-talk.xe.cx/?page=news&id='.$news['id'].'</link>
</item>

								';
								
								$counter++;
							}
echo ' </channel> 
</rss>';				
?>

Und hier der link damit ihr euch ein Bild machen könnt.
http://apple-talk.xe.cx/news.php

Dann erstmal die Fehler beheben:
http://validator.w3.org/feed/check.cgi?url=http%3A%2F%2Fapple-talk.xe.cx%2Fnews.php

Ok im firefox werden sie mir nun angezeigt aba safari, ie etc. bereiten noch probleme.
Laut diesem Validation ding kommt der mit dem umlauten net klar ? muss ich meine datenbank in ein bestimmtes Format umwandeln ?

Opera verwendet da gleich UTF-8, das scheint dann zu funktionieren, also erstmal die Information
zu encoding aus der XML-Verarbeitungsanweisung entfernen oder UTF-8 reinschreiben.
Da Opera sich ansonsten eigentlich an das hält, was der server behauptet, vermute ich mal,
daß das alles ist.

Sofern der server nicht Angaben zur Kodierung schickt (im Zweifelsfalle kann das auch in dem
Skript irgendwo stehen), kann es noch einen Unterschied machen, ob man das als
text/xml raushaut oder als application/xml. Für letzteres ist UTF-8 jedenfalls Voreinstellung, wenn
nichts angegeben ist, bei text/xml könnte die Lage kniffliger sein.

Während dein Zitat übrigens behauptet, daß ISO-8859-1 verwendet wird, steht in deiner Seite,
auf die du verweist, tatsächlich US-ASCII - der Unterschied sollte dir auch zu denken geben,
wobei, wenn bei Opera UTF-8 funktioniert, ISO-8859-1 wohl ohnehin falsch ist ;o)

ja das mit us-ascii hab ich im nachinein geändert

Der Fehler, den mir der Chrome anzeigt ist z.B.

in Zeile 237 steht:

Der Fehler, der hier angeprangert wird, ist dass „&“ was nicht maskiert ist.

Nutze htmlspecialchars() um deine Ausgabe zu maskieren.