RSS Feed Problem


otAAAh

Grünschnabel
Hallo, ich habe wiedereinmal ein Problem mit meiner RSS Datei,

PHP:
<?php  
include("_mysql.php"); 
header("Content-type: application/xml"); 
echo '<'.'?xml version="1.0" encoding="ISO-8859-1"?'.'>';  
?> 
<rss version="2.0"> 
  <channel> 
    <title>FIRSTBORN.de Feed</title> 
    <language>de-DE</language> 
    <?php 
    $query = "SELECT 'date' FROM 'webs_news' ORDER BY 'date' DESC LIMIT 0,1"; 
    $result = mysql_query($query); 
    $row = mysql_fetch_assoc($result); 
    ?> 
    <lastBuildDate><?php echo date("D, d M Y H:i:s T",$row['date']); ?></lastBuildDate> 
    <link>http://www.firstborn.de</link> 
    <description>News und Artikel zu Firstborn, eSport, Games und webSPELL</description> 
    <copyright>Copyright <?php date(y); ?></copyright> 
    <generator>firstborn.de</generator> 
    <image> 
      <url>http://otaaah.ot.ohost.de/webspell/design/1ani_navbox120x120.gif</url> 
      <title>FIRSTBORN.de</title> 
      <link>http://www.firstborn.de</link> 
    </image> 
     <?php 
      $query = "SELECT 'newsID','headline1','rubric','date','content1' FROM 'webs_news' ORDER BY 'date' DESC"; 
        $result = mysql_query($query); 
    while($row = mysql_fetch_assoc($result)) { 
    echo "    <item>\n"; 
    echo "      <title>".$row['headline1']."</title>\n"; 
    echo "      <link>http://www.firstborn.de/index.php?site=news_comments&newsID=".$row['newsID']."=de</link>\n"; 
    echo "      <category>".$row['rubric']."</category>\n"; 
    echo "      <pubDate>".date("D, d M Y H:i:s T",$row['date'])."</pubDate>\n"; 
    echo "      <description>".substr($row['content1'],0,200)."...</description>\n"; 
    echo "    <item>\n"; 
    }    
    ?> 
</channel> 
</rss>

Das ist meine RSS, und aussehen tuts dann so:
http://www.firstborn.de/rss.php

Mit ner xmö habe ich es auch schon versucht:
http://www.firstborn.de/rss.xml

Wieso setzt er die Items nicht?!
Vorab schonmal Dnake für jegliche Hilfe

nfg otAAAh
 

Gumbo

Erfahrenes Mitglied
Ich vermute dass die Datenbankabfragen fehlschlagen. Lass dir doch mal die MySQL-Fehlermeldung (mysql_error()-Funktion) ausgeben.
 

otAAAh

Grünschnabel
Also dann steht folgendes:

Code:
mysql_error(
Warning: Cannot modify header information - headers already sent by (output started at /kunden/184673_71739/webseiten/rss.php:2) in /kunden/184673_71739/webseiten/rss.php on line 4
de-DE
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /kunden/184673_71739/webseiten/rss.php on line 14
Thu, 01 Jan 1970 01:00:00 CET http://www.firstborn.de News und Artikel zu Firstborn, eSport, Games und webSPELL Copyright firstborn.de http://otaaah.ot.ohost.de/webspell/design/1ani_navbox120x120.gif http://www.firstborn.de
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /kunden/184673_71739/webseiten/rss.php on line 29
)
 

maeTimmae

Erfahrenes Mitglied
Falsch:
SQL:
SELECT 'date'
FROM 'webs_news'
ORDER BY 'date' DESC
LIMIT 0,1

Richtiger:
SQL:
SELECT `date`
FROM `webs_news`
ORDER BY `date` DESC
LIMIT 0,1

Hättest du dir die SQL-Fehlermeldung via [phpf]mysql_error[/phpf] ausgeben lassen, wärest du eventuell auch selbst drauf gekommen :)

Strings werden via einfache oder doppelte Anführungszeichen gekennzeichnet, Bezeichnungen in SQL jedoch mit `` (oder ohne, falls nicht eindeutig als Bezeichnung einer Datenbank, Tabelle oder Spalte zu deklarieren).

Edit: Das gilt übrigens für alle SQL-Queries... Deine zweite Abfrage müsstest du bitte selbst noch ändern.
 

otAAAh

Grünschnabel
Danke für die Antwort.

Aber da kann ich nur eins sagen: Augen auf im Starßenberkehr: habe die mysql-Fehlermeldung davor hingeschrieben gehabt.
Ich schreibe sie gerne aber nocheinmal hin, da dies nicht der Fehler war!

mysql_error(
Warning: Cannot modify header information - headers already sent by (output started at /kunden/184673_71739/webseiten/rss.php:1) in /kunden/184673_71739/webseiten/rss.php on line 3
de-DE
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /kunden/184673_71739/webseiten/rss.php on line 13
Thu, 01 Jan 1970 01:00:00 CET http://www.firstborn.de News und Artikel zu Firstborn, eSport, Games und webSPELL Copyright firstborn.de http://otaaah.ot.ohost.de/webspell/design/1ani_navbox120x120.gif http://www.firstborn.de
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /kunden/184673_71739/webseiten/rss.php on line 30
)


Für mich sind diese Fehlermeldungen wie ein Leeres Buch, somit muss ich euch noch einmal belästigen.

Hier nochmal mein code:
Code:
<?php  
include("_mysql.php"); 
header("Content-type: application/xml"); 
echo '<'.'?xml version="1.0" encoding="ISO-8859-1"?'.'>';  
?> 
<rss version="2.0"> 
  <channel> 
    <title>FIRSTBORN.de Feed</title> 
    <language>de-DE</language> 
    <?php 
    $query = "SELECT `date` FROM `webs_news` ORDER BY `date` DESC LIMIT 0,1"; 
    $result = mysql_query($query); 
    $row = mysql_fetch_assoc($result)
    ?> 
    <lastBuildDate><?php echo date("D, d M Y H:i:s T",$row['date']); ?></lastBuildDate> 
    <link>http://www.firstborn.de</link> 
    <description>News und Artikel zu Firstborn, eSport, Games und webSPELL</description> 
    <copyright>Copyright <?php date(y); ?></copyright> 
    <generator>firstborn.de</generator> 
    <image> 
      <url>http://otaaah.ot.ohost.de/webspell/design/1ani_navbox120x120.gif</url> 
      <title>FIRSTBORN.de</title> 
      <link>http://www.firstborn.de</link> 
    </image> 
     <?php 
      $query = "SELECT ``newsID`,`headline1`,`rubric`,`date`,`content1` FROM `webs_news` ORDER BY `date` DESC"; 
        $result = mysql_query($query); 
    while($row = mysql_fetch_assoc($result)) { 
    echo "    <item>\n"; 
    echo "      <title>".$row[`headline1`]."</title>\n"; 
    echo "      <link>http://www.firstborn.de/index.php?site=news_comments&newsID=".$row[`newsID`]."=de</link>\n"; 
    echo "      <category>".$row[`rubric`]."</category>\n"; 
    echo "      <pubDate>".date("D, d M Y H:i:s T",$row[`date`])."</pubDate>\n"; 
    echo "      <description>".substr($row[`content1`],0,200)."...</description>\n"; 
    echo "    <item>\n"; 
    }    
    ?> 
</channel> 
</rss>
 
Zuletzt bearbeitet:

Gumbo

Erfahrenes Mitglied
Hast du denn schon den von maeTimmae genannten Hinweis befolgt? Und was steht denn in Zeile 1 der „rss.php“-Datei, dass es zu einer vorzeitigen Ausgabe führt?
 

otAAAh

Grünschnabel
Ohh sry, ich vergas zu erwähnen, dass ich mich gerade erst in PHP mySQL und Javascript einarbeite.

Ist mir auch klar, dass es was mit dem bereits gesendeten Header zu tun hat. Jedoch weiß ich noch nicht, was Jede mySQL Fehlerausgabe bedeutet.

Also bitte ich drum, mir das vllt etwas genauer zu erläutern.

Und entschuldigung, wenn meine letzte Antwort etwas pampig rüberkam.

Also... was bedeutet die Fehlermeldung, dass der Header bereits gesendet wurde... wie gesagt kann mit dem gehler nix Anfangen und beim googlen gab es zu diesem Thema ca. 15 verschieden Meinungen. Und als Leihe, ist man dann überfordert.

MfG
 

Gumbo

Erfahrenes Mitglied
MySQL-Syntaxfehlern führen leider nur zu Fehlermeldungen, die wie folgt lautend:
You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '[…]' at line 1
Dort gilt es dann die gesendete Datenbankabfrage auszugeben und manuell nach Fehlern zu prüfen.


Probier mal Folgendes:
PHP:
<?php

	ob_start();
	// provisorischer Inhaltstyp (Klartext)
	header('Content-Type: text/plain; charset=iso-8859-1');
	include '_mysql.php';
	echo '<?xml version="1.0" encoding="ISO-8859-1"?>';

?> 
<rss version="2.0">
  <channel>
    <title>FIRSTBORN.de Feed</title>
    <language>de-DE</language>
<?php

	$query = "SELECT `date` FROM `webs_news` ORDER BY `date` DESC LIMIT 1";
	$result = mysql_query($query) or die(mysql_error());
	$row = mysql_fetch_assoc($result);

?> 
    <lastBuildDate><?php echo date("D, d M Y H:i:s T", $row['date']); ?></lastBuildDate>
    <link>http://www.firstborn.de</link>
    <description>News und Artikel zu Firstborn, eSport, Games und webSPELL</description>
    <copyright>Copyright <?php echo date('y'); ?></copyright>
    <generator>firstborn.de</generator>
    <image>
      <url>http://otaaah.ot.ohost.de/webspell/design/1ani_navbox120x120.gif</url>
      <title>FIRSTBORN.de</title>
      <link>http://www.firstborn.de</link>
    </image>
<?php

	$query = "SELECT `newsID`, `headline1`, `rubric`, `date`, `content1` FROM `webs_news` ORDER BY `date` DESC";
	$result = mysql_query($query) or die(mysql_error());
	while( $row = mysql_fetch_assoc($result) ) {
		echo "    <item>\n";
		echo "      <title>".$row['headline1']."</title>\n";
		echo "      <link>http://www.firstborn.de/index.php?site=news_comments&newsID='.$row['newsID'].'=de</link>\n";
		echo "      <category>".$row['rubric']."</category>\n";
		echo "      <pubDate>".date("D, d M Y H:i:s T", $row['date'])."</pubDate>\n";
		echo "      <description>".substr($row['content1'], 0, 200)."...</description>\n";
		echo "    <item>\n";
	}

?> 
</channel> 
</rss>
<?php

	// korrekter Inhaltstyp wird gesetzt
	header('Content-Type: application/xml; charset=iso-8859-1');

?>
Und sorge dafür, dass am Anfang der Datei keine Leerzeile und kein Leerzeichen oder ähnliches steht, dass das „<?php“ also das Allererste ist.
 

otAAAh

Grünschnabel
Also die alten probs sind weg jetzt kommt folgende fehler meldung:

Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /kunden/184673_71739/webseiten/rss.php on line 38
 

otAAAh

Grünschnabel
so fehler sind nun beseitigt!
vielen dank dafür... jetzt wird mir jedoch etwas angezeigt, was ich so garnicht erwartet habe:
Code:
<?xml version="1.0" encoding="ISO-8859-1"?> 
<rss version="2.0">
  <channel>
    <title>FIRSTBORN.de Feed</title>
    <language>de-DE</language>
No Database Selected


Is ja auch irgendwie nic so richtig.... liegt das an dem zusatz, den du in den Header gesetzt hast?
 

otAAAh

Grünschnabel
Sag mir doch bitte einfach was ich machen muss....

hinzukommt, dass der link defekt ist..... bei mir kommt immer, das die Seite nicht verfügbar ist....

also poste doch bitte einfach was ich ändern muss damit es funktioniert...
und ich wiederhole nocheinmal, dass ich mich gerade erst einlese, somit hab ich auch keine ahnung von......

ich habe es sogar gegoogelt... jetzt weiß ich zwar was es ist, aber nicht wie ich es einsetze!..... aber mal ne andere Frage: warum benutzt er nich die Verbindung die zuvor durch die Page gesetzt wurde?!
 
Zuletzt bearbeitet:

otAAAh

Grünschnabel
habe den db-connect hinbekommen, jedoch zieht er nachvievor noch keine daten und jetzt fehlt auch der Header!

www.firstborn.de/rss.php

was ist jetzt schon wieder das problem?
Code:
<?php

    ob_start();
    // provisorischer Inhaltstyp (Klartext)
    header('Content-Type: text/plain; charset=iso-8859-1');
    include '_mysql.php';
    echo '<?xml version="1.0" encoding="ISO-8859-1"?>';

?> 
<rss version="2.0">
  <channel>
    <title>FIRSTBORN.de Feed</title>
    <language>de-DE</language>
<?php

$link = mysql_connect('localhost', '********', '********');
if (!$link) {
    die('Verbindung nicht möglich : ' . mysql_error());
}

// benutze Datenbank db184673
$db_selected = mysql_select_db('db184673', $link);
if (!$db_selected) {
    die ('Kann db184673 nicht benutzen : ' . mysql_error());
}
?>

<?php

    $query = "SELECT `date` FROM `webs_news` ORDER BY `date` DESC LIMIT 1";
    $result = mysql_query($query) or die(mysql_error());
    $row = mysql_fetch_assoc($result);

?> 
    <lastBuildDate><?php echo date("D, d M Y H:i:s T", $row['date']); ?></lastBuildDate>
    <link>http://www.firstborn.de</link>
    <description>News und Artikel zu Firstborn, eSport, Games und webSPELL</description>
    <copyright>Copyright <?php echo date('y'); ?></copyright>
    <generator>firstborn.de</generator>
    <image>
      <url>http://otaaah.ot.ohost.de/webspell/design/1ani_navbox120x120.gif</url>
      <title>FIRSTBORN.de</title>
      <link>http://www.firstborn.de</link>
    </image>
<?php

    $query = "SELECT `newsID`, `headline1`, `rubric`, `date`, `content1` FROM `webs_news` ORDER BY `date` DESC";
    $result = mysql_query($query) or die(mysql_error());
    while( $row = mysql_fetch_assoc($result) ) {
        echo "    <item>\n";
        echo "      <title>".$row['headline1']."</title>\n";
        echo "      <link>http://www.firstborn.de/index.php?site=news_comments&newsID=".$row['newsID']."=de</link>\n";
        echo "      <category>".$row['rubric']."</category>\n";
        echo "      <pubDate>".date("D, d M Y H:i:s T", $row['date'])."</pubDate>\n";
        echo "      <description>".substr($row['content1'], 0, 200)."...</description>\n";
        echo "    <item>\n";
    }

?> 
</channel> 
</rss>
<?php

    // korrekter Inhaltstyp wird gesetzt
    header('Content-Type: application/xml; charset=iso-8859-1');

?>
 

Gumbo

Erfahrenes Mitglied
PHP:
<?php

	ob_start();
	// provisorischer Inhaltstyp (Klartext)
	header('Content-Type: text/plain; charset=iso-8859-1');

	include '_mysql.php';
	$link = mysql_connect('localhost', '********', '********');
	if (!$link) {
		die('Verbindung nicht möglich : ' . mysql_error());
	}
	// benutze Datenbank db184673
	$db_selected = mysql_select_db('db184673', $link);
	if (!$db_selected) {
		die ('Kann db184673 nicht benutzen : ' . mysql_error());
	}

	echo '<?xml version="1.0" encoding="ISO-8859-1"?>';

?> 
<rss version="2.0">
  <channel>
    <title>FIRSTBORN.de Feed</title>
    <language>de-DE</language>
<?php

	$query = "SELECT `date` FROM `webs_news` ORDER BY `date` DESC LIMIT 1";
	$result = mysql_query($query) or die(mysql_error());
	$row = mysql_fetch_assoc($result);

?>
    <lastBuildDate><?php echo date("D, d M Y H:i:s T", $row['date']); ?></lastBuildDate>
    <link>http://www.firstborn.de</link>
    <description>News und Artikel zu Firstborn, eSport, Games und webSPELL</description>
    <copyright>Copyright <?php echo date('y'); ?></copyright>
    <generator>firstborn.de</generator>
    <image>
      <url>http://otaaah.ot.ohost.de/webspell/design/1ani_navbox120x120.gif</url>
      <title>FIRSTBORN.de</title>
      <link>http://www.firstborn.de</link>
    </image>
<?php

	$query = "SELECT `newsID`, `headline1`, `rubric`, `date`, `content1` FROM `webs_news` ORDER BY `date` DESC";
	$result = mysql_query($query) or die(mysql_error());
	while( $row = mysql_fetch_assoc($result) ) {
		echo "    <item>\n";
		echo "      <title>".htmlspecialchars($row['headline1'])."</title>\n";
		echo "      <link>http://www.firstborn.de/index.php?site=news_comments&newsID=".$row['newsID']."=de</link>\n";
		echo "      <category>".htmlspecialchars($row['rubric'])."</category>\n";
		echo "      <pubDate>".date("D, d M Y H:i:s T", $row['date'])."</pubDate>\n";
		echo "      <description>".htmlspecialchars(substr($row['content1'], 0, 200))."...</description>\n";
		echo "    <item>\n";
	}

?>
</channel>
</rss>
<?php

	// korrekter Inhaltstyp wird gesetzt
	header('Content-Type: application/xml; charset=iso-8859-1');

?>
 

otAAAh

Grünschnabel
Ich werd noch verrückt...

Das gibt mir dei XML daei aus:
Code:
XML-Verarbeitungsfehler: nicht wohlgeformt
Adresse: http://www.firstborn.de/rss.xml
Zeile Nr. 32, Spalte 62:    <lastBuildDate><?php echo date("D, d M Y H:i:s T", $row['date']); ?></lastBuildDate>
Zur veranschaulichung
www.firstborn.de/rss.xml

was jetzt schon wieder los?
 

Gumbo

Erfahrenes Mitglied
Das Ganze muss auch als PHP interpretieren werden, also die Dateiendung „.php“ haben. Ich habe übrigens noch einen Fehler entdeckt: in Zeile 53 muss es „</item>“ lauten.
 

otAAAh

Grünschnabel
Ich hab die Datei auch als php ausgewießen!

ich hab nur die xml angegeben, weil da eine fehlermeldung kam...

bei der php-Datei, wird wieder nur der Header angezeigt...
 

Neue Beiträge

Forum-Statistiken

Themen
272.361
Beiträge
1.558.639
Mitglieder
187.834
Neuestes Mitglied
jordanx0206