I'm trying to get my site to automatically update the rss feed when I add news through my "add news" form. Currently the news gets added to the database fine, but it fails to update the xml file. It doesn't give me any errors either so I'm finding it difficult to find out what's wrong. Here's the code, i hope someone can help!
Code:
<?php
$date=$_POST['date'];
$title=$_POST['title'];
$text=$_POST['text'];
$author=$_POST['author'];
if($date==""||$title==""||$text==""||$author==""){
echo 'You need to fill in all details';
exit;
}
if (($_FILES['music']['type'] == "audio/mpeg") || ($_FILES['music']['type'] == "application/force-download") || ($_FILES['music']['type'] == "application/octet-stream")) {
$music='uploads/'.$_FILES["music"]["name"];
$tmpname=$_FILES['music']['tmp_name'];
move_uploaded_file($tmpname,$music);
}
$host='localhost';
$user='u0759062';
$pass='password';
mysql_connect($host,$user,$pass);
mysql_select_db($user);
$query="insert into newstable values (NULL,'".$date."','".$title."','".$text."','".$author."','".$music."')";
$result=mysql_query($query);
if(mysql_affected_rows()==1){
echo 'details were successfully added<br>';
echo '<br><a href="addnews.php">Add More News</a>';
}
else{
echo 'there was a problem';
}
$query2="select date, title, text, author, music from newstable order by date";
$result2=mysql_query($query2);
$body="<?xml version=\"1.0\" encoding=\"UTF-8\"?>
<rss version=\"2.0\">
<channel>
<title>Nutman</title>
<link>http://hermes.hud.ac.uk/u0759062</link>
<description>Electronic Music Producer</description>
";
while($row = mysql_fetch_array($result2)) {
$body .="
<item>
<title> $row[title]</title>
<link> $row[link]</link>
<description> $row[text]</description>
</item>";
}
$body .="
</channel>
</rss>";
$path="rss/rss.xml";
$filenum=fopen($path,"w");
fwrite($filenum,$body);
fclose($filenum);
mysql_close()
?>
The code writes everything to the xml file fine. However, the if/else statment i used is supposed to make sure that the <enclosure> tags are only used when the $row['music'] var has data within it. at the moment, it puts the <enclosure> tags on ever item. what am i doing wrong?!
unless a music file has been uploaded via the form on the previous page, there is no value for the "music" column, hence why i thought the isset function would work. but it doesnt seem to
Hi danz321
I did the same as u explained using the first piece of code but my page displays nothing. Also, the xml page displays nothing. help me.
The code is
<?php
error_reporting(0);
mysql_select_db("news", $connection);
$select = "SELECT * FROM newsstory where active = 0 ORDER BY dtadded DESC LIMIT 5";
$query = mysql_query($select) or die(mysql_error());
Hi everybody,
when i tried the above code and it gave the following error:
The XML page cannot be displayed
Cannot view XML input using XSL style sheet. Please correct the error and then click the Refresh button, or try again later.
XML document must have a top level element. Error processing resource 'http://www1.indstate.edu/news/rss/sss.php'.
-------------------------------------------------------------
and the style sheet xsl is
<?xml version='1.0' encoding='UTF-8'?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xslutput method="html"/>
<xsl:variable name="title" select="/rss/channel/title"/>
<xsl:template match="/">
<html>
<head>
</head>
<body>
<a name="top"></a>
<a href="http://www.indstate.edu"><img src="ISU-print-logo.gif" alt="Indiana State University" border="0" width="173" height="52"></img></a>
<h3 font-family="Arial"><font size="+3" color="#0053af">ISU News RSS Feed</font></h3>
<!-- first table-->
<fieldset style="width:600px; margin:20">
<legend><font size="4" color="#8ca77a"><b> What is this page?</b></font></legend>
<form><table>
<tr bgcolor="#e4e9ee"><th align="left">
<p>This is a RSS feed from the ISU News website. RSS feeds allow you to stay up to date with the latest news and features you want from ISU News.</p>
<p>To subscribe to it, you will need a News Reader or other similar device. If you would like to use this feed to display ISU News content on your site, <a href="http://indstate.edu/news/rss/"><b><font color="#406480">please go here.</font></b></a></p>
</th>
</tr>
</table></form></fieldset>
<!--second table-->
<p></p>
<fieldset style="width:800px; margin:20">
<legend>
<font size="4" color="#8ca77a"><b>Latest content available from this feed</b>
</font>
</legend>
<form>
<xsl:apply-templates/>
</form></fieldset>
Please use [php]...[/php] tags around your code samples if you want us to take the time to read it.
"Please give us a simple answer, so that we don't have to think, because if we think, we might find answers that don't fit the way we want the world to be."
~ Terry Pratchett in Nation
Bookmarks