login  Naam:   Wachtwoord: 
Registreer je!
 Forum

PHP en RSS bundelen (Opgelost)

Offline Nielzie - 30/12/2011 11:35 (laatste wijziging 30/12/2011 11:37)
Avatar van NielzieLid Hey allen,

ik heb volgend script voor mijn RSS automatisch te laden aan de hand van de 10 laatste nieuwsitems in de database.

Echter werkt het niet... Iemand een idee waar ik fout zit?

Alvast bedankt!

CODE RSS.PHP

  1. <?php
  2.  
  3. // Database settings
  4.  
  5. $dbhost = "localhost";
  6. $db = "database";
  7. $username = "login";
  8. $dbww = "password";
  9. $connection = mysql_connect("$dbhost","$username","$dbww");
  10.  
  11. // Start the RSS Feed
  12.  
  13. header('Content-type: text/xml'); // Must declare the content type
  14. echo '<?xml version=\'1.0\' encoding=\'UTF-8\'?>';
  15.  
  16. // Set RSS version.
  17.  
  18. echo '
  19. <rss version=\'2.0\'> ';
  20.  
  21. // Start the XML.
  22.  
  23. echo '
  24. <channel>
  25. <title>TITEL WEBSITE</title>
  26. <link>http://www.mijnsite.be</link>';
  27.  
  28. // Query database and select the last 10 entries.
  29.  
  30. $sqlnews = mysql_query('select * from 2012_newsitem order by id desc limit 10');
  31. while($data = mysql_fetch_array($sqlnews)){
  32. echo '
  33. <item>
  34. <link>http://www.mijnsite.be/2012/index.php?p=artikel&id='.$data['id'].'</link>
  35. <title>'.$data['titel'].'</title>
  36. <description>'.$data['tekst'].'</description>
  37. </item>';
  38. }
  39.  
  40. echo '
  41. </channel>
  42. </rss>';
  43.  
  44. ?>

7 antwoorden

Gesponsorde links
Offline WouterJ - 30/12/2011 12:15
Avatar van WouterJ HTML gevorderde Wat werkt er niet? Krijg je een foutmelding? Staat er toevallig in de php.ini short_php tag aan? Want dan werkt het inderdaad niet, die moet je dan uitzetten.

- Je hebt geen foutafhandeling van de query. Voeg die toe.
- Op regel 9 en 10 staan de variabelen binnen de quotes, haal deze eruit.
- Gebruik PHP.net: mysql_fetch_assoc i.p.v. fetch_array
Offline Nielzie - 30/12/2011 13:30
Avatar van Nielzie Lid Eigenlijk doet hij niets... Hij heeft gewoon een lege rss weer.
Heel af en toe (wanneer ik blijf F5 klikken) verschijnt er eens de titel van de website...

Merk wel op dat 'k bovenstaande dingen heb aangepast, m.u.v. short_php tag. Deze .ini file moet ik zelf nog aanmaken vermoed ik (staat nergens in de root).
Offline icemar - 30/12/2011 13:44
Avatar van icemar Lid Wat krijg je uit de query als je de data dump?
via var_dump();
Offline WouterJ - 30/12/2011 13:47 (laatste wijziging 30/12/2011 13:48)
Avatar van WouterJ HTML gevorderde Een php.ini bestand hoef je niet zelf te maken. Als je er niet bij komt heeft je host je er waarschijnlijk geen toegang tot gegeven.

Maak eens een pagina die je phpinfo.php noemt en plaats daar het volgende in:
  1. <?php
  2. ?>


Open die pagina in je webbrowser en kijk of er bij Core > short_open_tags On staat.
Als dit er staat maak je een .htaccess bestand aan (alleen .htaccess geen bestandsnaam). En zet daarin:
  1. <IfModule mod_php5.c>
  2. php_flag short_open_tag off
  3. </IfModule>


Sla deze op in je root en kijk of er nu bij Local Value (de 1e kolom) wel Off staat bij short_open_tags.

------------------

Ook is het niet nodig om zoveel XML te echoën. Doe het zo:

  1. <?php
  2.  
  3. $var = 'Hello World';
  4.  
  5. ?>
  6. <post>
  7. <article>
  8. <?php echo $var; ?>
  9. </article>
  10. </post>

Sluit dus je php en open het weer om een variabele te echoën.
Offline Nielzie - 30/12/2011 14:02 (laatste wijziging 30/12/2011 14:09)
Avatar van Nielzie Lid Dit is inderdaad gewijzigd (staat nu local op Off dankzij de .htaccess).

Wanneer ik het bestand rss.php oproep in Safari, krijg ik mooi het resultaat zoals het zou moeten. Echter in Firefox wordt het niet weergegeven (maar staat het wel allemaal mooi in de broncode).

Ik vermoed dat de fout dus ergens in Firefox zit...

Edit:

in IE geeft hij volgende melding: Er wordt een puntkomma verwacht.
over het <link> gebeuren.
Wanneer ik mijn link wijzig naar:

<link>http://www.mijnsite.com/2012/</link>

in plaats van:

<link>http://www.mijnsite.com/2012/index.php?p=artikel&id='.$data['id'].'</link>

Geeft hij 't overal perfect weer. Het enige nadeel is dat het artikel dan niet juist verwijst aangezien 'k naar die bepaalde ID zou moeten kunnen verwijzen...

Offline WouterJ - 30/12/2011 14:16
Avatar van WouterJ HTML gevorderde Je moet & veranderen in &amp; of je moet <![CDATA[ hier de link ]]> om de link heen zetten, maar de & veranderen is makkelijker 
Bedankt door: Nielzie
Offline Nielzie - 30/12/2011 14:17
Avatar van Nielzie Lid Bedankt, Wouter! Probleem opgelost!
Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.207s