Jump to content

RSS tutorial


mediaguy2004

Recommended Posts

Hello guys I am working on the rss tutorial. I did get it to work but I am having a problem.

I am getting this error

Warning: Cannot add header information - headers already sent by (output started at /var/www/html/news_rss/Test2.php:8) in /www/news_rss/Test2.php on line 56.
 
Can any one tell me what this means.
Below is the code

Thanks for your help..


<?php
include "config.php";

$link = mysql_connect($config['db_host'],$config['db_user'],$config['db_pass']) or die();
mysql_select_db($config['db_name']) or die();

$news_headlines    = mysql_query("SELECT n.*,a.* FROM news AS n LEFT JOIN authors AS a ON a.aid=n.n_author_id ORDER BY n.n_time DESC".(is_numeric($config['headlines']) && $config['headlines']>0 ? " LIMIT {$config['headlines']}" : null));
$items_output    = null;
if(mysql_num_rows($news_headlines))
{
    while($headline = mysql_fetch_assoc($news_headlines))
    {
        $link            = htmlentities("http://example.com/index.php?act=news&id={$headline['nid']}");
        $pubdate        = gmdate('r',$headline['n_time']);
        $author            = $config['show_author_info'] ? "nttt<author>{$headline['a_email']} ({$headline['a_name']})</author>" : null;
        $description    = nl2br($headline['n_body']);
       
        $items_output .= <<<EOF

        <item>
            <title>{$headline['n_title']}</title>
            <description>
                {$description}
            </description>
            <link>{$link}</link>
            <pubDate>{$pubdate}</pubDate>{$author}
        </item>
EOF;
    }
}

$config['encoding']    = empty($config['encoding']) ? 'ISO-8859-1' : $config['encoding'];
$copyright            = empty($config['copyright']) ? null : "ntt<copyright>".str_replace('{year}',date('Y'),$config['copyright'])."</copyright>";
$pubdate            = $config['show_feed_pubdate'] ? "ntt<pubDate>".gmdate('r')."</pubDate>" : null;
$language            = empty($config['language']) ? null : "ntt<language>{$config['language']}</language>";

$output = <<<EOF
<?xml version="1.0" encoding="{$config['encoding']}" ?>
<rss version="2.0">
    <channel>
        <title>{$config['feed_title']}</title>
        <link>{$config['link']}</link>
        <description>{$config['description']}</description>{$copyright}{$pubdate}{$language}{$items_output}
    </channel>
</rss>

EOF;

header("Content-type: application/xml; charset={$config['encoding']}");
echo $output;
?>
Link to comment
Share on other sites

You must send header("Content-type: application/xml; charset={$config['encoding']}"); to the browser before ANYTHING else even if it's just whitespace (you can have whitespace in your php scripts; it just cannot be outputted to the browser.)

Try moving that line to the top of the file.
Link to comment
Share on other sites

OK I tried it, It will give me the page with out the xml page jus a plain html page with the error. Plus I tried a couple of things.
when I leave it alone I can see all the info from the headlines table  and not author table
when I make this change - I removed the header Info form the config file. That gaves me the xml page

Then I get this error
The XML page cannot be displayed
Cannot view XML input using XSL style sheet. Please correct the error

Then this error too

Only one top level element is allowed in an XML document. Error processing resource 'http://localhost/test_rss/rss.php'. Line 8, Position 2


<b>Warning</b>:  Cannot add header information - headers already sent by (output started at /www/test_rss/rss.php:5) in <b>www/test_rss/rss.php</b> on line <b>53</b><br />
anyone has any ideas

Thanks



Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.