Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Kanały RSS - problem
Forum PHP.pl > Forum > Przedszkole
kornelcio
Mam taki kod dotyczący kanałów RSS, który pobiera kazdą ikonę (item) z bazy danych:
  1. <?xml version=&#092;"1.0\" encoding=\"UTF-8\" ?>
  2. <?php 
  3. include('../db.php'); ?>
  4. <rss version=\"2.0\">
  5.  <channel>
  6.  <generator>Broadcast Builder 1.48 Personal (C) Lionhardt Technologies 2003, www.lionhardt.com/bb</generator>
  7.  <lastBuildDate>Wed, 06 Jul 2005 07:07:17 GMT</lastBuildDate>
  8.  <title>Szko&#x0142;a Podstawowa nr 1 w Sanoku</title>
  9.  <link>http://sp1sanok.avx.pl/</link>
  10.   <language>pl</language>
  11.   <copyright>Copyright  2005 by Kornel Komenda</copyright>
  12.   <managingEditor>Kornel Komenda (kornelcio@gmail.com)</managingEditor>
  13.   <webMaster>Kornel Komenda (kornelcio@gmail.com)</webMaster>
  14. <?php $query = mysql_query(\"SELECT `data_pub` FROM `rss_news` ORDER BY `id` DESC LIMIT 1\");
  15.     $wynik = mysql_fetch_assoc($query);
  16.   echo (\"<pubDate>\".$wynik['data_pub'].\"</pubDate>\");
  17.  
  18.     $last = mysql_query(\"SELECT * FROM `rss_news` ORDER BY `id` DESC LIMIT 8\");
  19.     while($row = mysql_fetch_assoc($last)) {
  20.    echo(\"<item>
  21.      <title>&#092;".$row['title'].\"</title>
  22.      <link>http://sp1sanok.avx.pl/glowna/index.php?id=news#\".$row['id_newsa'].\"</link>
  23.      <description>&#092;".$row['description'].\"</description>
  24.      <pubDate>&#092;".$row['data_pub'].\"</pubDate>
  25.    </item>&#092;");
  26.    }
  27.  ?>
  28.   </channel>
  29. </rss>


Nie wiem, co tutaj mam źle :/ (wyświetla mi błąd Parse error: parse error, unexpected T_STRING in /home/users/sp1sanok/www/rss/newsy.php on line).

Mam też drugie pytanie: nie wyświetla mi błędu, jeśli jest zapisane jako plik o rozszerzeniu *.xml , ale jak jest *.php to wyświetla, więc ew. jakie mam dać rozszerzenie? dysponuję wersją PHP4.

Skrypt znajduje się na stronie http://sp1sanok.avx.pl/rss/newsy.xml oraz http://sp1sanok.avx.pl/rss/newsy.php

Dzięki za wszystkie odpowiedzi.
Pozdrawiam
kornelcio
rozszerzenie php: pokazuje ten sam błąd w linijce 3

rozszrzenie xml: opera pokazuje mi coś takiego:
Cytat
Błąd składni XML: na początku obiektu zewnętrznego brak instrukcji przetwarzania xml (Wiersz: 3, Znak: 0)

<?php include('../db.php'); ?>

<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<generator>Broadcast Builder 1.48 Personal © Lionhardt Technologies 2003, www.lionhardt.com/bb</generator>
<lastBuildDate>Wed, 06 Jul 2005 07:07:17 GMT</lastBuildDate>
<title>Szko&#x0142;a Podstawowa nr 1 w Sanoku</title>
<link>http://sp1sanok.avx.pl/</link>
<language>pl</language>
<copyright>Copyright  2005 by Kornel Komenda</copyright>
<managingEditor>Kornel Komenda (kornelcio@gmail.com)</managingEditor>
<webMaster>Kornel Komenda (kornelcio@gmail.com)</webMaster>

<?php
$query = mysql_query("SELECT `data_pub` FROM `rss_news` ORDER BY `id` DESC LIMIT 1");
$wynik = mysql_fetch_assoc($query);

echo "<pubDate>".$wynik['data_pub']."</pubDate>";

$last = mysql_query("SELECT * FROM `rss_news` ORDER BY `id` DESC LIMIT 8");
while($row = mysql_fetch_assoc($last))
{
   echo "<item>
   <title>".$row['title']."</title>
   <link>http://sp1sanok.avx.pl/glowna/index.php?id=news#".$row['id_newsa']."</link>
   <description>".$row['description']."</description>
   <pubDate>".$row['data_pub']."</pubDate>
   </item>";
}
?>

</


nazwa pliku: newsy2.xml oraz newsy2.php
tiraeth
spróbuj na dać ob_start i ob_end_flush... może to coś pomoże...
kornelcio
dodałem ob_start i ob_end_flush i zmieniłem kod, żeby łączył się z bazą z tego pliku:
Kod
<?php
ob_start();
mysql_connect('localhost', '********', '*******') or die("Błąd numer 1");
mysql_select_db('********') or die("Błąd numer 2"); ?>

<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<generator>Broadcast Builder 1.48 Personal (C) Lionhardt Technologies 2003, www.lionhardt.com/bb</generator>
<lastBuildDate>Wed, 06 Jul 2005 07:07:17 GMT</lastBuildDate>
<title>Szko&#x0142;a Podstawowa nr 1 w Sanoku</title>
<link>http://sp1sanok.avx.pl/</link>
<language>pl</language>
<copyright>Copyright  2005 by Kornel Komenda</copyright>
<managingEditor>Kornel Komenda (kornelcio@gmail.com)</managingEditor>
<webMaster>Kornel Komenda (kornelcio@gmail.com)</webMaster>

<?php
$query = mysql_query("SELECT `data_pub` FROM `rss_news` ORDER BY `id` DESC LIMIT 1");
$wynik = mysql_fetch_assoc($query);

echo "<pubDate>".$wynik['data_pub']."</pubDate>";

$last = mysql_query("SELECT * FROM `rss_news` ORDER BY `id` DESC LIMIT 8");
while($row = mysql_fetch_assoc($last))
{
   echo "<item>
   <title>".$row['title']."</title>
   <link>http://sp1sanok.avx.pl/glowna/index.php?id=news#".$row['id_newsa']."</link>
   <description>".$row['description']."</description>
   <pubDate>".$row['data_pub']."</pubDate>
   </item>";
}
?>

</channel>
</rss>
<?php ob_end_flush(); ?>


Pokazuje błąd w lini 6: czyli tam, gdzie jest deklaracja xml'a (rozszerzenie php)
w roszerzeniu xml: brak instrukcji prztwarzania xml.
Troszkę to dziwne mi się wydaje :/
dr_bonzo
Masz short_tags On
wiec "<?xml" traktuje jak kod php a "xml" to nieznaleziona funkcja/zmienn/itd
kornelcio
czyli co mam zrobić?
nospor
Ja bym ci proponował generować tego xml na boku i zapisywać do pliku do którego gośc moglby sie odwolać.

Bądź też generować w tym php xml do pliku i robić potem przekierowanie na ten plik.
kornelcio
no to może kawałek kod? bo ja już pomysłu nie mam sad.gif
kyno
a moze tak smile.gif
  1. echo '<?xml version=&#092;"1.0\" encoding=\"UTF-8\" ?>';
kornelcio
kyno: dzięki, pomogło smile.gif

Ale za to mam jeszcze jeden problem - mój "kanał" RSS nie chce się dodawać automatycznie do list (w przypadku statycznego xml tak sie działo) - co z tym zrobić?
crash
  1. <?php
  2. header( 'Content-type: application/rss+xml' );
  3. ?>
kornelcio
Wielkie dzięki wszystkim, którzy poświęcili chwilę swojego czasu na pomoc smile.gif
Wszystko już działa, a ja powoli dodaję wiadomości do kanału :] (dzięki waszej pomocy oczywiście)
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.