Slettet bruger
16. august 2008 - 14:05
Der er
71 kommentarer og 2 løsninger
RSS Feed, fejl
Hej Eksperter,
Jeg har prøvet at lave et RSS Feed til min hjemmeside, cykelsporten.dk.
FEJL:
Parse error: syntax error, unexpected T_STRING in /customers/cykelsporten.dk/cykelsporten.dk/httpd.www/rss/news.php on line 5
Kode:
<?php
header("Content-Type: text/xml");
require_once "../mysql.php";
$result3 = mysql_query("SELECT * FROM "artikler ORDER BY time DESC LIMIT 0,10");
echo "<?xml version=\"1.0\" encoding=\"danish\"?>\n\n
<rss version=\"0.91\">\n\n
<channel>\n
<title>CykelSporten.dk</title>\n
<link>
http://cykelsporten.dk</link>\n <description>beskrivelse</description>\n";
while ($row=dbarray($result3)) {
$rsid = intval($row['ID']);
$rtitle = $row['overskrift'];
$date = date("H:i:s Y-m-d",$row['time']);
$description = stripslashes(nl2br($row['tekst']));
$description = strip_tags($description, "<A><P><BR><BR /><HR>");
$description = substr($description, 0, 150);
echo "<item>\n
<pubDate>".$date."</pubDate>\n
<title>".htmlspecialchars($rtitle)."</title>\n
<link>".$base."news.php?readmore=".$rsid."</link>\n
<description>".htmlspecialchars($description)."</description>\n
</item>\n\n";
}
echo "</channel>
</rss>";
?>
Annonceindlæg fra HP
16. august 2008 - 14:16
#1
Din linie 5 indeholder en " for meget: $result3 = mysql_query("SELECT * FROM artikler ORDER BY time DESC LIMIT 0,10"); Prøv med det i stedet
16. august 2008 - 14:42
#2
Du har ikke defineret funktionen dbarray, mener du muligvis mysql_fetch_assoc ?
16. august 2008 - 14:43
#3
Hmm, jamen hvorfor bruger du ikke en browser, der viser dig hvad der er i vejen, i stedet for bare at spytte en "virker ikke", som IE sommetider gør. Firefox 3 er et godt bud. ;) Og problemet er vel at du skal putte din tekst i description ind som CDATA
16. august 2008 - 14:43
#4
Og: jeg kiggede på cykelsporten.dk/rss.php
16. august 2008 - 15:00
#5
Ja, men du har også fejl på den jeg brugte, og får samme fejl her - når du har fixet det med PHP.
16. august 2008 - 15:16
#6
Et RSS feed kan du finde mange steder. PHP-kode til RSS-feeds jeg har lavet, kan jeg ikke altid bare vise frem. Men du har bare nogle simple PHP-problemer først om fremmest.
16. august 2008 - 15:30
#7
Jeg samler slet ikke på point, tak. Så længe du har banale PHP-fejl, så får du en fejlbesked du kan arbejde videre med. Jeg kan ikke hjælpe dig uden koden, og måske andre oplysinger.
16. august 2008 - 15:33
#8
Ser du ikke:
Der må kun være ét element på øverste niveau i et XML-dokument. Der opstod en fejl under behandling af ressourcen '
http://c... <b>Warning</b>: require_once() [<a href='function.require-once'>function.require-once</a>]: URL fil...
?
Så skal du nok slå "Vis meddelelse om uskadelige HTTP-fejl" fra i Internet Explorers avancerede indstillinger.
16. august 2008 - 15:40
#9
Hov, dette er den hele:
Warning: require_once() [function.require-once]: URL file-access is disabled in the server configuration in /customers/cykelsporten.dk/cykelsporten.dk/httpd.www/rss/news.php on line 4
Warning: require_once(
http://www.cykelsporten.dk/mysql.php ) [function.require-once]: failed to open stream: no suitable wrapper could be found in /customers/cykelsporten.dk/cykelsporten.dk/httpd.www/rss/news.php on line 4
Fatal error: require_once() [function.require]: Failed opening required '
http://www.cykelsporten.dk/mysql.php' (include_path='.:') in /customers/cykelsporten.dk/cykelsporten.dk/httpd.www/rss/news.php on line 4
16. august 2008 - 15:42
#10
Kan "vis kilde" i IE heller ikke vise fejlene?
16. august 2008 - 16:04
#11
Ja, det samme ser jeg. Men hvis du går ind i "Vis kilde", som Erik foreslår, så viser den mig den tekst, som jeg skrev til sidst. Og det er de præcise fejlmeddelelser, som du skal bruge til at fikse dine fejl.
16. august 2008 - 16:45
#12
Nej, jeg foretrækker at yde hjælp til selvhjælp. Første fejl er: Warning: require_once() [function.require-once]: URL file-access is disabled in the server configuration in /customers/cykelsporten.dk/cykelsporten.dk/httpd.www/rss/news.php on line 4 Det lyder jo som om, den ikke kan åbne "../mysql.php"?
16. august 2008 - 16:47
#13
Du vil også hjælpe at vise den kode, der faktisk fejler. Når den siger noget med "URL file-access", så kan det ikke være den kode du viser her.
16. august 2008 - 16:58
#14
Der står også, at det er et problem i server-konfigurationen så det kan sagtens være for enkelte filer. Og på hovedsiden står det vel også anderledes end "../mysql.php", så du kalder den jo faktisk på en lidt anden måde.
16. august 2008 - 16:58
#15
(Jeg har dog endnu ikke erfaring nok med PHP til at kunne sige det med sikkerhed.)
16. august 2008 - 17:06
#16
Hvad?
16. august 2008 - 17:07
#17
Du er velkommen, cykelsport, til at sidde og snakke med dig selv. Hvis du vil have vi snakker med, så vis os den kode der fejler, med samt hvilken fejl det er.
16. august 2008 - 17:11
#18
require_once "../connect.php"; ??
16. august 2008 - 17:16
#19
Så prøv at brug: require_once "../mysql.php"; så vi er 100% sikre på, hvad der bliver kørt, og hvad vi retter i. :)
16. august 2008 - 17:24
#20
Når du ser siden nu og går ind i "Vis kilde", så ser du:
<?xml version="2.0" encoding="danish"?>
<rss version="0.91">
<channel>
<title>CykelSporten.dk</title>
<link>
Http://CykelSporten.dk</link> <description>CykelSporten.dk er gud</description>
Fatal error: Call to undefined function dbarray() in /customers/cykelsporten.dk/cykelsporten.dk/httpd.www/rss/news.php on line 14
Og det er jo rigtigt nok. Din linje 14 er:
while ($row=dbarray($result3)) {
Og her kalder du dbarray(), som ikke er defineret noget sted i koden.
16. august 2008 - 17:33
#21
Det er svært at sige - det har vel haft et eller andet formål på et tidspunkt, men det er ikke en eksisterende funktion, så der er nogen der har lavet deres egen. Jeg ville nok bare prøve at rette dbarray til mysql_fetch_array
16. august 2008 - 17:40
#22
Tryk på "Flere oplysninger", så får du: Ugyldigt versionsnummer. Linje: 1 Tegn: 16 <?xml version="2.0" encoding="danish"?> Dvs. ret version="2.0" til version="1.0"
16. august 2008 - 17:43
#23
Ret "danish" til "iso-8859-1".
16. august 2008 - 17:52
#24
Du skal erstatte &-tegn med & Og i øvrigt skal linjen: <description>".$tekst."</description>\n vel være: <description>".$description."</description>\n
16. august 2008 - 17:54
#25
Du kan rette dette: $description = stripslashes(nl2br($row['tekst'])); $description = strip_tags($description, "<A><P><BR><BR /><HR>"); $description = substr($description, 0, 150); til: $description = stripslashes(nl2br($row['tekst'])); $description = strip_tags($description, "<A><P><BR><BR /><HR>"); $description = htmlentities($description); $description = substr($description, 0, 150); hvis du vil erstatte specialtegn med HTML-entiteter, hvilket jo lige nu forårsager din fejl i FireFox.
16. august 2008 - 17:54
#26
Ellers skal beskrivelsen puttes ind som CDATA, som Erik foreslog i starten.
16. august 2008 - 17:55
#27
Det gør du ved også at rette: <description>".$description."</description>\n til: <description><![CDATA[".$description."]]></description>\n Så burde du være ret godt dækket ind.
16. august 2008 - 17:57
#28
Og hvad er din linje 15 nu? (Vis gerne hele din nuværende kode.)
16. august 2008 - 18:01
#29
Du har rettet <description>-linjen det forkerte sted.
Det skal være:
<?php
header("Content-Type: text/xml");
require_once "../mysql.php";
$result3 = mysql_query("SELECT * FROM artikler ORDER BY time DESC LIMIT 0,10");
echo "<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>\n\n
<rss version=\"0.91\">\n\n
<channel>\n
<title>CykelSporten.dk</title>\n
<link>
Http://CykelSporten.dk/</link>\n <description><![CDATA[CykelSporten.dk er gud]]></description>\n;
while ($row=mysql_fetch_array($result3)) {
$RSSID = intval($row['ID']);
$overskrift = $row['overskrift'];
$date = date("H:i:s Y-m-d",$row['time']);
$tekst = stripslashes(nl2br($row['tekst']));
$tekst = strip_tags($tekst, "<A><P><BR><BR /><HR>");
$tekst = htmlentities($tekst);
$tekst = substr($tekst, 0, 150);
echo "<item>\n
<pubDate>".$date."</pubDate>\n
<title>".$overskrift."</title>\n
<link>".$base."../article.php?id=".$RSSID."</link>\n
<description><![CDATA[".$tekst."]]></description>\n;
</item>\n\n";
}
echo "</channel>
</rss>";
?>
16. august 2008 - 18:02
#30
Det skyldtes din linje: <description><![CDATA[".$tekst."]]></description>\n; hvor $tekst endnu ikke indeholdt noget.
16. august 2008 - 18:14
#31
Din echo-sætning der slutter i linie 12 mangler en afslutning.
16. august 2008 - 18:32
#32
Der mangler stadig noget, men du kan få den af mig. Værsgo.: "
16. august 2008 - 18:38
#33
Din echo-sætning, der slutter i linje 12. Dvs. ret: <description>Beskrivelse332</description>\n; til: <description>Beskrivelse332</description>\n";
16. august 2008 - 18:54
#34
Hvad mener du? Nu ser det da ud til at fungere 100% i både IE og FF?
16. august 2008 - 19:02
#35
I hvilken browser? Jeg ser det helt fint som sagt i både IE og FF.
16. august 2008 - 19:02
#36
Nu er der så en fejl på siden, så du har rettet et eller andet siden sidst.
16. august 2008 - 19:24
#37
Lige før virkede det fint hos mig. Men du sagde da også før, at den udskrev det som tekst. Så der meldte den jo heller ikke fejl. Vis lige din nuværende kode.
16. august 2008 - 19:43
#38
Der er et 5-tal her: echo "<?xml version=\5"1.0\" encoding=\"iso-889-1\"?>\n\n
16. august 2008 - 20:05
#39
Nej, jeg kan se, at du bare havde flyttet 5-tallet: echo "<?xml version=\5"1.0\" encoding=\"iso-8859-1\"?>\n\n Det burde virker.
16. august 2008 - 20:19
#40
Gerne for mig, hvis Erik da vil have nogen, hvilket han ikke plejer. =)
16. august 2008 - 20:23
#41
Fejlen i IE er stadig: Systemet understøtter ikke den angivne kodning. Linje: 1 Tegn: 43 <?xml version="1.0" encoding="iso-889-1"?> Så hvis du ikke har ændret iso-889-i til iso-8859-1, skal du lige gøre det, og ellers er det fordi du skal rydde Cachen i IE for at se ændringen.
16. august 2008 - 20:24
#42
Nej, jeg kan se, at der stadig mangler 5-tallet.
16. august 2008 - 20:44
#43
Tak for point! :)
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.