Goeiedag php'ers,
Uitleg:
ik heb helaas weer een probleem tijdens het coderen van php. Hieronder ziet u een functie over RSS, wanneer een persoon een foto oploadt op de uploadpagina laat ik de uploadpagina deze functie runnen. Deze functie maakt een rss feed aan, een xml bestand dus.
Problemen:
1. Als ik mijn site in firefox open en het RSS icon klikt krijg ik wel het venster, maar zonder titel. Dit wil ik graag hebben weet iemand dat?
2. wanneer ik dit gebruik maakt hij wel RSS feed aan maar die niet gevalideerd kan worden<guid>http://localhost/test/?page=detail&photo={$item['id']}</guid>
als ik dit gebruik valideert hij het wel.
<guid>http://localhost.no-ip.info/detail.php?photo=40</guid>
dit komt voornamelijk door die & teken. want als ik het verander in een vraag teken ? doet hij het wel. Weet misschien iemand hoe je dit in RSS feed uitzet of kan escapen.
<?php
// RSS functie om een rss feed automatisch te laten maken
function create_rss($db) {
// initialisatie
$query = "";
$result = "";
$xml_string = "";
// query opstellen voor het ophalen van de laatst n foto's
$query = "SELECT p.*, UNIX_TIMESTAMP(p.datum) AS datum, m.naam, m.email FROM photos p, members m WHERE m.id = p.uploader_id ORDER BY datum DESC LIMIT " . RSS_AANTAL_ITEMS .";";
// query uitvoeren en toekennen aan result
$result = safe_query($db, $query);
// resultaten opnemen in XML-string. string wordt omgezet met \n \t
$xml_string = "< ?xml version=\"1.0\" encoding=\"ISO-8859-1\" ? >\n";
$xml_string .= "<rss version=\"2.0\">\n";
$xml_string .= "\t<channel>\n";
$xml_string .= "\t\t<title>Waarom komt er geen titel</title>\n";
$xml_string .= "\t\t<link>" .RSS_LINK."</link>\n";
$xml_string .= "\t\t<copyright>" .RSS_COPY."</copyright>\n";
$xml_string .= "\t\t<pubDate>" .date("r")."</pubDate>\n";
$xml_string .= "\t\t<language>" .RSS_TAAL."</language>\n";
$xml_string .= "\t\t<ttl>" .RSS_TTL."</ttl>\n";
$xml_string .= "\t\t<webMaster>" .RSS_WEBMASTER."</webMaster>\n";
$xml_string .= "\t\t<description>" .RSS_DESCRIPT."</description>\n";
// resultaten in lus zetten in de xml_string verwerken
while ($item = mysqli_fetch_array($result)) {
$xml_string .= "\t\t\t<item>\n";
$xml_string .= "\t\t\t\t<title>{$item['photo_filename']}</title>\n";
$xml_string .= "\t\t\t\t<description>" .zin_afbreken($item['beschrijving'])."</description>\n";
$xml_string .= "\t\t\t\t<guid>http://localhost/test/?page=detail&photo={$item['id']}</guid>\n";
$xml_string .= "\t\t\t\t<author>{$item['email']}</author>\n";
$xml_string .= "\t\t\t\t<pubDate>" .date("r", $item['datum']). "</pubDate>\n";
$xml_string .= "\t\t\t</item>\n";
}
$xml_string .= "\t</channel>\n";
$xml_string .= "</rss>\n";
// rss feed op schijf bewaren
if (!$fp = fopen(RSS_FILENAME, "w")) {
return false;
}
else {
fwrite($fp, $xml_string);
fclose($fp);
return true;
}
}
?>
Pogingen:
1. Titel keihard gewoon erigeschreven geen DEFINE variable meer gebruikt maar werkt niet
2. Bij de <guid>......</guid> heb ikde & teken in een ? veranderd toen valideert de xml bestand wel goed maar kom ik niet op de juist pagina, het kan liggen aan de & teken
help... :'(
996 views