Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL][XML]Kanały RSS
Forum PHP.pl > Forum > Przedszkole
marian84
Witam. Mam problem z kanałami rss. Raz wyświetla się wszystko dobrze, a raz sie krzaczy.
Struktura pliku rss.php:

  1. <?php
  2. include('../config.php');
  3.  
  4. echo'<?xml version="1.0" encoding="UTF-8" ?>';
  5. echo'<rss version="2.0">';
  6. echo'<channel>';
  7. echo'<lastBuildDate>Sat, 20 Dec 2003 21:00:00 GMT</lastBuildDate>';
  8. echo'<title>klimatyzacja.pl</title>';
  9. echo'<link>http://www.klimatyzacja.pl</link>';
  10. echo' <description><![CDATA[Najświeższe informacje z branż klimatyzacja, wentylacja, chłodnictwo, ogrzewnictwo]]></description>';
  11. echo'<language>pl</language>';
  12. echo'<copyright>klimatyzacja.pl</copyright>';
  13. echo'<managingEditor>marian84@o2.pl (Mariusz Daczkowski)</managingEditor>';
  14. echo'<webMaster>Mariusz Daczkowski</webMaster>';
  15. echo'<ttl>10</ttl>';
  16. $zap=mysql_query('SELECT * FROM aktualnosci order by idaktualnosci DESC LIMIT 0,5');
  17. while($row=mysql_fetch_array($zap)){
  18. ?>
  19. <item>
  20.    <title><?php echo $row['temat'];?></title>
  21.    <link>http://www.klimatyzacja.pl/index.php?akt_cms=<?php echo $row['idaktualnosci'];?>&amp;cms=<?php echo $row['idcms'];?></link>
  22.    <pubDate><?php echo date("Y-m-d h:i:s");?></pubDate>
  23.    <description><![CDATA[<?php echo $row['zajawka'];?>]]></description>
  24.    <category>klimatyzacja</category>
  25.    <author>marian</author>
  26. </item>
  27. <?php
  28. }  
  29.  
  30. echo'</channel>';
  31. echo'</rss>';
  32. ?>


Wynik rss : http://www.klimatyzacja.pl/rss/rss.php
___
narazie to masz:

Kod
Parse error: syntax error, unexpected '.' in /rss/rss.php on line 7
marian84
Uzupełniając info... plik wyswietla rss po ktoryms odswierzeniu. Jak sprawdzalem przez program do czytania rss wydaje sie ok, a przez strone nie.
thm
  1. <?php
  2. header('Content-type: text/xml');
  3. ?>
marian84
Cytat(thm @ 8.10.2008, 14:25:12 ) *
  1. <?php
  2. header('Content-type: text/xml');
  3. ?>


Niestety nie pomogło:(
thm
header wstaw w pierwszej linijce.
i edytuj kod porządnym edytorem, bo zdaje się, że ci śmieci dopisuje do pliku.
marian84
Cytat(thm @ 8.10.2008, 15:03:26 ) *
header wstaw w pierwszej linijce.
i edytuj kod porządnym edytorem, bo zdaje się, że ci śmieci dopisuje do pliku.


Heder wstawiam w 1 linijce, edytuje dreamwever-em
_olo_1984
spróbuj
  1. <?php
  2. ini_set("short_open_tag",0); // opcjonalnie
  3. header('Content-type: application/xml; charset="utf-8"');
  4. echo '<?xml version="1.0" encoding="utf-8"?>
  5. <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">';
  6. ...
  7. ?>


potem jak kolega radzi sprawdz kodowanie, plik edytuj dobrym programem, zobaćż czy nie dopisuje ci bom ...
marian84
przy dodawaniu header wyrzuca błąd headers already sent by...
_olo_1984
no tak, bo coś pewnie masz w pliku config.php

Najprościej pominać includowanie pliku i funkcję łączenia z bazą napisać w jednym pliku np:
  1. <?php
  2. ini_set("short_open_tag",0);
  3. function connect() {
  4.    mysql_connect('localhost', 'root', 'root')
  5.        or die("Brak połączenia z serwerem MySQL.");
  6.    mysql_select_db('baza')
  7.        or die("Nie można wybrać bazy.");
  8.    }
  9. connect();
  10. $result=mysql_query('SELECT * FROM aktualnosci order by idaktualnosci DESC LIMIT 0,5') or die(mysql_error());
  11. header('Content-type: application/xml; charset="utf-8"');
  12. echo '<?xml version="1.0" encoding="utf-8"?>
  13. <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  14. <channel>
  15. <title>a</title>
  16. <atom:link href="http://www.domena.pl/rss.xml" rel="self" type="application/rss+xml" />
  17. <link>http://www.domena.pl/rss.xml</link>
  18. <description>a</description>
  19. <language>pl</language>
  20. <copyright>a</copyright>';
  21. while($row = mysql_fetch_array($result)) {
  22. <item>
  23.   <title>'.$row['temat'].'</title>
  24.   <link>http://www.klimatyzacja.pl/index.php?akt_cms='.$row['idaktualnosci'].'&amp;cms='.$row['idcms'].'</link>
  25.   <pubDate>'.date(DATE_RFC822, strtotime($row['data_dodania'])).'</pubDate>
  26.   <description><![CDATA['.$row['zajawka'].']]></description>
  27.   <category>klimatyzacja</category>
  28.   <author>mail (marian)</author>
  29. </item>';
  30. }
  31. echo '</channel>
  32. </rss>';
  33. ?>


musisz mieć pole w bazie data dodania, pozatym przy autorze raczej podaje się maile. Oczywiście to tylko przykład który próbuję na twoich danych. I to musi działać.
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.