SitePoint Sponsor

User Tag List

Results 1 to 5 of 5

Hybrid View

  1. #1
    SitePoint Addict
    Join Date
    Feb 2012
    Location
    Kiwi in Bangkok
    Posts
    373
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    My sites RSS fedd and the rss.php - is NOT a valid syndication Feed

    My site has some RSS feeds, I just added some extra code so my RSS feed will Ping Google/Yahoo/etc when a site change is made,

    Ping to be sent with Just Listed Item

    while trying to find out if my new Ping code was being sent out, I decided to work backwards and test the RSS feed.

    Weblogs.com provides this service so that you can verify whether or not your feed satisfies the most common syndication standards (i.e. Atom, RDF, and RSS).

    http://www.trade-th.com/ rss.php?feed=1 is NOT a valid syndication Feed

    below is my rss.php, all ideas/help greatly appreciated.

    PHP Code:
    <?
    #################################################################
    ## rss.php for Ping                                             ##
    ##-------------------------------------------------------------##
    ## Copyright 2012  All rights reserved.                         ##
    ##-------------------------------------------------------------##
    #################################################################

    define('RSSlang'1); // Language English=1, Chinese=2
    define('RSSlogo''images/probidlogo.gif'); // logo must be relative to site url
    define('RSSdepth'10); // number of items to display.
    define('RSStitle1''Just Listed');
    define('RSStitle2''Closing Soon');
    define('RSStitle3''Featured Items');
    define('RSStitle4''Big Ticket');
    define('RSStitle5''Very Expensive');
    define('RSStitle6''Under $10');
    define('RSStitle7''Warm Items');
    define('RSStitle8''Hot Items');
    define('RSStitle9''Buy Now');
    define('RSS10'10);     // items $10 and under
    define('RSS300'300);   // items $300 and more
    define('RSS1000'1000); // items $1000 and more
    define('RSSwarm'10);   // items with 10 or more bids
    define('RSShot'25);    // items with 25 or more bids

    // DO NOT EDIT BELOW THIS LINE

    define ('IN_SITE'1);

    include_once (
    'includes/global.php');

    $charset 'ISO-8859-1';
    $langcode 'en-us';

    function 
    utf8_convert($string
    {
        return 
    utf8_encode($string);
    }

    function 
    get_path($node// look up the parent of this node

        global 
    $db;
        
    $path = array(); // save the path in this array
        
        
    $row $db->get_sql_row("SELECT parent_id,name FROM " DB_PREFIX "categories WHERE category_id='".$node."'");

        if (
    $row['parent_id']>0// only continue if this $node isn't the parent node
        

            
    $path[] = $row['name']; // the last part of the path to $node, is the name of the parent of $node
            
    $path array_merge(get_path($row['parent_id']), $path); // add the path to the parent of this node to the path
        
    }
        return 
    $path// return the path
    }

    function 
    letsunhtmlspecialchars ($string
    {
        
    $string str_replace (''', '\''$string);
        
    $string str_replace ('%23''\"'$string);
        
    $string str_replace ('&quot;''\"'$string);
        
    $string str_replace ('&lt;''<'$string);
        
    $string str_replace ('&gt;''>'$string);
        
    $string str_replace ('&amp;''&'$string);
        
    $string str_replace ('&nbsp;'' '$string);
        
    $string stripslashes($string);

        return 
    $string;
    }

    function 
    letsclean_string ($string$maxchars=1200
    {

        
    /*
        * No extra repeat characters.
        * No spaces in begining of field.
        * No spaces in ending of field.
        * No extra spaces in body of field.
        * Remove all quotes.
        * Max field size is approx 1024 characters.
        * Do not truncate words.
        * Do not concatinate words.
        * Remove all html tags.
        * Remove single character words such as @,#,!,^,&,*,(, etc
        */

        
    $space = array("&nbsp;","<br>","<BR>","<br/>","<br />","\r\n","\r","\n","\t","\v");
        
    $tags = array("applet","meta","xml","blink","link","style","script","embed","object","iframe","frame","frameset","ilayer","layer","bgsound","title","base");
        
    $string letsunhtmlspecialchars($string);
        
    $string str_replace($space' '$string);
        
    $string str_replace("&039;"' '$string);
        
        foreach (
    $tags as $tag
        {
            
    $string preg_replace("@<".$tag."[^>]*?>.*?</".$tag.">@si"""$string);
        }
        
        
    $string preg_replace('#[\x00-\x1F\"\']#i',"",$string);
        
    $string preg_replace('#[\x7F-\xFF\"\']#i',"",$string);
        
    $string strip_tags($string);
        
    $string stripslashes($string);
        
    $string ereg_replace("[^[:blank:][:alnum:]\+,;.!:$%&@?/)(_-]"" "$string);
        
    $string preg_replace('/\s+/'," ",$string);
        
    $string trim($string);
        
    $words explode(" ",$string);
        
    $string = array();
        
    $single_chars = array("+",",",";",".","!",":","$","%","&","@","?","/",")","(","_","-");
        
        foreach (
    $words as $word
        {
            foreach (
    $single_chars as $single_char
            {
                
    $pattern "/\\".$single_char."+/";
                
    $word preg_replace("$pattern",$single_char,$word);
            }
            if (
    strlen($word)==&& !preg_match('/^[aAiIxX\+\-]/',$word)) continue;
            
    $string[]=$word;
        }
        
        
    $string implode(" ",$string); // array to string
        
    $maxchars = (strlen($string)>$maxchars) ? $maxchars strlen($string);
        
    $string substr($string,0,$maxchars);
        
    $string implode(" ",explode(" ",$string,str_word_count($string)-1));

        return 
    $string;
    }

    $user_id intval($_REQUEST['user_id']);

    switch (
    $_REQUEST['feed'])
    {
        case 
    1
            
    $RSStitle RSStitle1// items listed in the last 24 hours
            
    $postdate 'start_time';
            
    $sort 'DESC';
            
    $subquery 'start_time<=' CURRENT_TIME ' AND start_time>' . (CURRENT_TIME - (24 60 60));
            break;

        case 
    2
            
    $RSStitle RSStitle2// items closing in 24 hours or less
            
    $postdate='end_time';
            
    $sort 'ASC';
            
    $subquery 'start_time<=' CURRENT_TIME ' AND end_time<=' . (CURRENT_TIME + (24 60 60));
            break;

        case 
    3
            
    $RSStitle=RSStitle3// homepage items
            
    $postdate 'start_time';
            
    $sort 'DESC';
            
    $subquery 'start_time<=' CURRENT_TIME ' AND hpfeat=1';
            break;

        case 
    4
            
    $RSStitle RSStitle4// items over 300.00
            
    $postdate 'end_time'
            
    $sort 'ASC';
            
    $subquery 'start_time<=' CURRENT_TIME ' AND (max_bid >= ' RSS300 ' OR start_price >= ' RSS300 ' OR buyout_price >= ' RSS300 ')';
            break;

        case 
    5
            
    $RSStitle RSStitle5// items over 1000.00
            
    $postdate 'end_time'
            
    $sort 'ASC';
            
    $subquery 'start_time<=' CURRENT_TIME ' AND (max_bid >= ' RSS1000 ' OR start_price >= ' RSS1000 ' OR buyout_price >= ' RSS1000 ')';
            break;

        case 
    6
            
    $RSStitle RSStitle6;
            
    $postdate 'start_time';
            
    $sort 'DESC';
            
    $subquery 'start_time<=' CURRENT_TIME ' AND (max_bid <= ' RSS10 ' AND start_price <= ' RSS10 ')';
            break;

        case 
    7
            
    $RSStitle RSStitle7// items with 10 or more bids
            
    $postdate 'start_time';
            
    $sort 'DESC';
            
    $subquery 'nb_bids >= ' RSSwarm;
            break;

        case 
    8
            
    $RSStitle RSStitle8// items with 25 or more bids
            
    $postdate 'start_time';
            
    $sort 'DESC';
            
    $subquery 'nb_bids >= ' RSShot;
            break;

        case 
    9
            
    $RSStitle RSStitle9// item with a Buy Now
            
    $postdate 'start_time';
            
    $sort 'DESC';
            
    $subquery 'start_time<=' CURRENT_TIME ' AND buyout_price>0';
            break;

        default:
            if (
    $user_id>0// setup query for specific users
            

                
    $username ucfirst($db->get_sql_field("SELECT username FROM " DB_PREFIX "users WHERE user_id='" $user_id "'"'username'));
                
    $postdate 'start_time';
                
    $sort 'DESC';
                
    $subquery 'start_time<=' CURRENT_TIME ' AND end_time>' CURRENT_TIME ' AND owner_id=' $user_id;
                
    $RSStitle 'Listings posted by ' $username;
            } 
            else 
    // no user specified
            
    {
                
    $RSStitle RSStitle1;
                
    $postdate 'start_date';
                
    $sort 'DESC';
                
    $subquery 'start_time<=' CURRENT_TIME ' AND start_time>' . (CURRENT_TIME - (24 60 60));
            }
            break;
    }

    $limit = ($user_id 0) ? '' 'LIMIT ' RSSdepth;

        if (
    $user_id>0) {

    $results $db->query("SELECT a.auction_id, a.name, a." $postdate " AS postdate, a.description, a.max_bid, 
        a.nb_bids, a.currency, a.owner_id, a.category_id, a.closed, a.bold, a.hl, a.buyout_price, a.is_offer, a.start_price, 
        a.reserve_price, am.media_url, u.username FROM " 
    DB_PREFIX "auctions a 
        LEFT JOIN " 
    DB_PREFIX "auction_media am ON a.auction_id=am.auction_id AND am.media_type=1 AND am.upload_in_progress=0 
        LEFT JOIN " 
    DB_PREFIX "users u ON u.user_id=a.owner_id
        WHERE a.closed=0 AND a.active=1 AND a.approved=1 AND a.deleted=0 and a.owner_id='"
    .$user_id."' 
        GROUP BY a.auction_id ORDER BY " 
    $postdate " " $sort " " $limit);

        } else {

    $results $db->query("SELECT a.auction_id, a.name, a." $postdate " AS postdate, a.description, a.max_bid, 
        a.nb_bids, a.currency, a.category_id, a.closed, a.bold, a.hl, a.buyout_price, a.is_offer, a.start_price, 
        a.reserve_price, am.media_url, u.username FROM " 
    DB_PREFIX "auctions a 
        LEFT JOIN " 
    DB_PREFIX "auction_media am ON a.auction_id=am.auction_id AND am.media_type=1 AND am.upload_in_progress=0 
        LEFT JOIN " 
    DB_PREFIX "users u ON u.user_id=a.owner_id
        WHERE a.closed=0 AND a.active=1 AND a.approved=1 AND a.deleted=0 
        GROUP BY a.auction_id ORDER BY " 
    $postdate " " $sort " " $limit);

        }
    $numrows $db->num_rows($results);

    // RSS 2.0 item information
    $items=array();

    $timezone $db->get_sql_field("SELECT value FROM " DB_PREFIX "timesettings WHERE active=1"'value');
    $timezone explode('-'$timezone);
    $tz sprintf('%05s'$timezone[count($timezone)-1] . ':00');
    $timezone = (count($timezone)-1) ? '-' $tz '+' $tz;

    while (
    $row=@mysql_fetch_assoc($results)) // loop through database fields & build item array
    {
        
    $price $fees->display_amount(($row['max_bid']>0) ? $row['max_bid'] : $row['start_price'], $row['currency']);

        
    $picpath null;
        if (!empty(
    $row['media_url'])) 
        {
            
    $picpath '<img alt="' $row['name'] . '" border="0" src="' SITE_PATH 'thumbnail.php?pic=' $row['media_url'] . '&w=100"><br><br>';
        }

        
    $items['title'][]    = utf8_convert(letsclean_string($row['name'])).utf8_encode(' - ' $price);
        
    $items['link'][]        = utf8_encode(SITE_PATH 'auction_details.php?auction_id=' $row['auction_id']);
        
    $items['desc'][]        = utf8_convert(letsclean_string($row['description']));
        
    $items['pubDate'][]    = utf8_encode(date('Y-m-d'$row['postdate']) . 'T' date('H:i:s'$row['postdate']) . $timezone);
        
    $items['category'][]    = utf8_convert(letsclean_string(implode(' : 'get_path($row['category_id']))));
        
    $items['creator'][]    = utf8_convert(ucfirst($row['username']));
    }

    header("Content-Type: text/xml;charset=" $charset);

    // display RSS 2.0 channel information
    $RSSlogo=RSSlogo;

    echo <<<START
    <?xml version="1.0" encoding="$charset"?>
    <rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel>
        <title>
    $RSStitle{$setts['sitename']}</title>
        <link>
    {$setts['site_path']}</link>
        <description>
    {$setts['sitename']}</description>
    <image>
        <url>
    {$setts['site_path']}$RSSlogo</url>
        <title>
    {$setts['sitename']}</title>
        <link>
    {$setts['site_path']}</link>
    </image>

    <language>
    $langcode</language>
    <copyright>Copyright 
    {$setts['sitename']}. The contents of this feed are available for non-commercial use only.</copyright>
    <generator>
    {$setts['site_path']}</generator>
    <!-- RSS-Items -->
    START;

    // display items
    for ($i=0$i<$numrows$i++) {

        echo <<<ITEM

    <item>
        <title>
    {$items['title'][$i]}</title>
        <link>
    {$items['link'][$i]}</link>
        <guid isPermaLink="true">
    {$items['link'][$i]}</guid>
        <description>
    {$items['desc'][$i]}</description>
        <dc:creator>
    {$items['creator'][$i]}</dc:creator>
        <dc:date>
    {$items['pubDate'][$i]}</dc:date>
        <category>
    {$items['category'][$i]}</category>
    </item>

    ITEM;

    }


    echo <<<END
    <!-- / RSS-Items PHP/RSS -->
    </channel>
    </rss>

    END;

    ?>

  2. #2
    SitePoint Zealot
    Join Date
    Feb 2005
    Location
    Aveiro, Portugal
    Posts
    164
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)
    Quote Originally Posted by RayWilk View Post
    My site has some RSS feeds, I just added some extra code so my RSS feed will Ping Google/Yahoo/etc when a site change is made,

    Ping to be sent with Just Listed Item

    while trying to find out if my new Ping code was being sent out, I decided to work backwards and test the RSS feed.

    Weblogs.com provides this service so that you can verify whether or not your feed satisfies the most common syndication standards (i.e. Atom, RDF, and RSS).

    http://www.trade-th.com/ rss.php?feed=1 is NOT a valid syndication Feed

    below is my rss.php, all ideas/help greatly appreciated.

    PHP Code:
    <?
    #################################################################
    ## rss.php for Ping                                             ##
    ##-------------------------------------------------------------##
    ## Copyright 2012  All rights reserved.                         ##
    ##-------------------------------------------------------------##
    #################################################################

    define('RSSlang'1); // Language English=1, Chinese=2
    define('RSSlogo''images/probidlogo.gif'); // logo must be relative to site url
    define('RSSdepth'10); // number of items to display.
    define('RSStitle1''Just Listed');
    define('RSStitle2''Closing Soon');
    define('RSStitle3''Featured Items');
    define('RSStitle4''Big Ticket');
    define('RSStitle5''Very Expensive');
    define('RSStitle6''Under $10');
    define('RSStitle7''Warm Items');
    define('RSStitle8''Hot Items');
    define('RSStitle9''Buy Now');
    define('RSS10'10);     // items $10 and under
    define('RSS300'300);   // items $300 and more
    define('RSS1000'1000); // items $1000 and more
    define('RSSwarm'10);   // items with 10 or more bids
    define('RSShot'25);    // items with 25 or more bids

    // DO NOT EDIT BELOW THIS LINE

    define ('IN_SITE'1);

    include_once (
    'includes/global.php');

    $charset 'ISO-8859-1';
    $langcode 'en-us';

    function 
    utf8_convert($string
    {
        return 
    utf8_encode($string);
    }

    function 
    get_path($node// look up the parent of this node

        global 
    $db;
        
    $path = array(); // save the path in this array
        
        
    $row $db->get_sql_row("SELECT parent_id,name FROM " DB_PREFIX "categories WHERE category_id='".$node."'");

        if (
    $row['parent_id']>0// only continue if this $node isn't the parent node
        

            
    $path[] = $row['name']; // the last part of the path to $node, is the name of the parent of $node
            
    $path array_merge(get_path($row['parent_id']), $path); // add the path to the parent of this node to the path
        
    }
        return 
    $path// return the path
    }

    function 
    letsunhtmlspecialchars ($string
    {
        
    $string str_replace (''', '\''$string);
        
    $string str_replace ('%23''\"'$string);
        
    $string str_replace ('&quot;''\"'$string);
        
    $string str_replace ('&lt;''<'$string);
        
    $string str_replace ('&gt;''>'$string);
        
    $string str_replace ('&amp;''&'$string);
        
    $string str_replace ('&nbsp;'' '$string);
        
    $string stripslashes($string);

        return 
    $string;
    }

    function 
    letsclean_string ($string$maxchars=1200
    {

        
    /*
        * No extra repeat characters.
        * No spaces in begining of field.
        * No spaces in ending of field.
        * No extra spaces in body of field.
        * Remove all quotes.
        * Max field size is approx 1024 characters.
        * Do not truncate words.
        * Do not concatinate words.
        * Remove all html tags.
        * Remove single character words such as @,#,!,^,&,*,(, etc
        */

        
    $space = array("&nbsp;","<br>","<BR>","<br/>","<br />","\r\n","\r","\n","\t","\v");
        
    $tags = array("applet","meta","xml","blink","link","style","script","embed","object","iframe","frame","frameset","ilayer","layer","bgsound","title","base");
        
    $string letsunhtmlspecialchars($string);
        
    $string str_replace($space' '$string);
        
    $string str_replace("&039;"' '$string);
        
        foreach (
    $tags as $tag
        {
            
    $string preg_replace("@<".$tag."[^>]*?>.*?</".$tag.">@si"""$string);
        }
        
        
    $string preg_replace('#[\x00-\x1F\"\']#i',"",$string);
        
    $string preg_replace('#[\x7F-\xFF\"\']#i',"",$string);
        
    $string strip_tags($string);
        
    $string stripslashes($string);
        
    $string ereg_replace("[^[:blank:][:alnum:]\+,;.!:$%&@?/)(_-]"" "$string);
        
    $string preg_replace('/\s+/'," ",$string);
        
    $string trim($string);
        
    $words explode(" ",$string);
        
    $string = array();
        
    $single_chars = array("+",",",";",".","!",":","$","%","&","@","?","/",")","(","_","-");
        
        foreach (
    $words as $word
        {
            foreach (
    $single_chars as $single_char
            {
                
    $pattern "/\\".$single_char."+/";
                
    $word preg_replace("$pattern",$single_char,$word);
            }
            if (
    strlen($word)==&& !preg_match('/^[aAiIxX\+\-]/',$word)) continue;
            
    $string[]=$word;
        }
        
        
    $string implode(" ",$string); // array to string
        
    $maxchars = (strlen($string)>$maxchars) ? $maxchars strlen($string);
        
    $string substr($string,0,$maxchars);
        
    $string implode(" ",explode(" ",$string,str_word_count($string)-1));

        return 
    $string;
    }

    $user_id intval($_REQUEST['user_id']);

    switch (
    $_REQUEST['feed'])
    {
        case 
    1
            
    $RSStitle RSStitle1// items listed in the last 24 hours
            
    $postdate 'start_time';
            
    $sort 'DESC';
            
    $subquery 'start_time<=' CURRENT_TIME ' AND start_time>' . (CURRENT_TIME - (24 60 60));
            break;

        case 
    2
            
    $RSStitle RSStitle2// items closing in 24 hours or less
            
    $postdate='end_time';
            
    $sort 'ASC';
            
    $subquery 'start_time<=' CURRENT_TIME ' AND end_time<=' . (CURRENT_TIME + (24 60 60));
            break;

        case 
    3
            
    $RSStitle=RSStitle3// homepage items
            
    $postdate 'start_time';
            
    $sort 'DESC';
            
    $subquery 'start_time<=' CURRENT_TIME ' AND hpfeat=1';
            break;

        case 
    4
            
    $RSStitle RSStitle4// items over 300.00
            
    $postdate 'end_time'
            
    $sort 'ASC';
            
    $subquery 'start_time<=' CURRENT_TIME ' AND (max_bid >= ' RSS300 ' OR start_price >= ' RSS300 ' OR buyout_price >= ' RSS300 ')';
            break;

        case 
    5
            
    $RSStitle RSStitle5// items over 1000.00
            
    $postdate 'end_time'
            
    $sort 'ASC';
            
    $subquery 'start_time<=' CURRENT_TIME ' AND (max_bid >= ' RSS1000 ' OR start_price >= ' RSS1000 ' OR buyout_price >= ' RSS1000 ')';
            break;

        case 
    6
            
    $RSStitle RSStitle6;
            
    $postdate 'start_time';
            
    $sort 'DESC';
            
    $subquery 'start_time<=' CURRENT_TIME ' AND (max_bid <= ' RSS10 ' AND start_price <= ' RSS10 ')';
            break;

        case 
    7
            
    $RSStitle RSStitle7// items with 10 or more bids
            
    $postdate 'start_time';
            
    $sort 'DESC';
            
    $subquery 'nb_bids >= ' RSSwarm;
            break;

        case 
    8
            
    $RSStitle RSStitle8// items with 25 or more bids
            
    $postdate 'start_time';
            
    $sort 'DESC';
            
    $subquery 'nb_bids >= ' RSShot;
            break;

        case 
    9
            
    $RSStitle RSStitle9// item with a Buy Now
            
    $postdate 'start_time';
            
    $sort 'DESC';
            
    $subquery 'start_time<=' CURRENT_TIME ' AND buyout_price>0';
            break;

        default:
            if (
    $user_id>0// setup query for specific users
            

                
    $username ucfirst($db->get_sql_field("SELECT username FROM " DB_PREFIX "users WHERE user_id='" $user_id "'"'username'));
                
    $postdate 'start_time';
                
    $sort 'DESC';
                
    $subquery 'start_time<=' CURRENT_TIME ' AND end_time>' CURRENT_TIME ' AND owner_id=' $user_id;
                
    $RSStitle 'Listings posted by ' $username;
            } 
            else 
    // no user specified
            
    {
                
    $RSStitle RSStitle1;
                
    $postdate 'start_date';
                
    $sort 'DESC';
                
    $subquery 'start_time<=' CURRENT_TIME ' AND start_time>' . (CURRENT_TIME - (24 60 60));
            }
            break;
    }

    $limit = ($user_id 0) ? '' 'LIMIT ' RSSdepth;

        if (
    $user_id>0) {

    $results $db->query("SELECT a.auction_id, a.name, a." $postdate " AS postdate, a.description, a.max_bid, 
        a.nb_bids, a.currency, a.owner_id, a.category_id, a.closed, a.bold, a.hl, a.buyout_price, a.is_offer, a.start_price, 
        a.reserve_price, am.media_url, u.username FROM " 
    DB_PREFIX "auctions a 
        LEFT JOIN " 
    DB_PREFIX "auction_media am ON a.auction_id=am.auction_id AND am.media_type=1 AND am.upload_in_progress=0 
        LEFT JOIN " 
    DB_PREFIX "users u ON u.user_id=a.owner_id
        WHERE a.closed=0 AND a.active=1 AND a.approved=1 AND a.deleted=0 and a.owner_id='"
    .$user_id."' 
        GROUP BY a.auction_id ORDER BY " 
    $postdate " " $sort " " $limit);

        } else {

    $results $db->query("SELECT a.auction_id, a.name, a." $postdate " AS postdate, a.description, a.max_bid, 
        a.nb_bids, a.currency, a.category_id, a.closed, a.bold, a.hl, a.buyout_price, a.is_offer, a.start_price, 
        a.reserve_price, am.media_url, u.username FROM " 
    DB_PREFIX "auctions a 
        LEFT JOIN " 
    DB_PREFIX "auction_media am ON a.auction_id=am.auction_id AND am.media_type=1 AND am.upload_in_progress=0 
        LEFT JOIN " 
    DB_PREFIX "users u ON u.user_id=a.owner_id
        WHERE a.closed=0 AND a.active=1 AND a.approved=1 AND a.deleted=0 
        GROUP BY a.auction_id ORDER BY " 
    $postdate " " $sort " " $limit);

        }
    $numrows $db->num_rows($results);

    // RSS 2.0 item information
    $items=array();

    $timezone $db->get_sql_field("SELECT value FROM " DB_PREFIX "timesettings WHERE active=1"'value');
    $timezone explode('-'$timezone);
    $tz sprintf('%05s'$timezone[count($timezone)-1] . ':00');
    $timezone = (count($timezone)-1) ? '-' $tz '+' $tz;

    while (
    $row=@mysql_fetch_assoc($results)) // loop through database fields & build item array
    {
        
    $price $fees->display_amount(($row['max_bid']>0) ? $row['max_bid'] : $row['start_price'], $row['currency']);

        
    $picpath null;
        if (!empty(
    $row['media_url'])) 
        {
            
    $picpath '<img alt="' $row['name'] . '" border="0" src="' SITE_PATH 'thumbnail.php?pic=' $row['media_url'] . '&w=100"><br><br>';
        }

        
    $items['title'][]    = utf8_convert(letsclean_string($row['name'])).utf8_encode(' - ' $price);
        
    $items['link'][]        = utf8_encode(SITE_PATH 'auction_details.php?auction_id=' $row['auction_id']);
        
    $items['desc'][]        = utf8_convert(letsclean_string($row['description']));
        
    $items['pubDate'][]    = utf8_encode(date('Y-m-d'$row['postdate']) . 'T' date('H:i:s'$row['postdate']) . $timezone);
        
    $items['category'][]    = utf8_convert(letsclean_string(implode(' : 'get_path($row['category_id']))));
        
    $items['creator'][]    = utf8_convert(ucfirst($row['username']));
    }

    header("Content-Type: text/xml;charset=" $charset);

    // display RSS 2.0 channel information
    $RSSlogo=RSSlogo;

    echo <<<START
    <?xml version="1.0" encoding="$charset"?>
    <rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel>
        <title>
    $RSStitle{$setts['sitename']}</title>
        <link>
    {$setts['site_path']}</link>
        <description>
    {$setts['sitename']}</description>
    <image>
        <url>
    {$setts['site_path']}$RSSlogo</url>
        <title>
    {$setts['sitename']}</title>
        <link>
    {$setts['site_path']}</link>
    </image>

    <language>
    $langcode</language>
    <copyright>Copyright 
    {$setts['sitename']}. The contents of this feed are available for non-commercial use only.</copyright>
    <generator>
    {$setts['site_path']}</generator>
    <!-- RSS-Items -->
    START;

    // display items
    for ($i=0$i<$numrows$i++) {

        echo <<<ITEM

    <item>
        <title>
    {$items['title'][$i]}</title>
        <link>
    {$items['link'][$i]}</link>
        <guid isPermaLink="true">
    {$items['link'][$i]}</guid>
        <description>
    {$items['desc'][$i]}</description>
        <dc:creator>
    {$items['creator'][$i]}</dc:creator>
        <dc:date>
    {$items['pubDate'][$i]}</dc:date>
        <category>
    {$items['category'][$i]}</category>
    </item>

    ITEM;

    }


    echo <<<END
    <!-- / RSS-Items PHP/RSS -->
    </channel>
    </rss>

    END;

    ?>

    Hi RayWilk,

    Have you tested your feed against online RSS feed validators?
    They usually give you hints on how to correct your errors.
    Try:
    http://validator.w3.org/feed/
    or
    http://www.rssboard.org/rss-validator/

    HTH,
    Mário
    Yours truely
    Mário Ramos

  3. #3
    SitePoint Addict tom8's Avatar
    Join Date
    Mar 2012
    Location
    New Jersey
    Posts
    310
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)
    Thanks for the suggestions.

    The error is caused by these characters:
    3629;& 3633;& 3621;& 3610;& 3633;& 3617;& 3649;& 3626;& 3605;& 3617;& 3611;& 3660;

    Does anyone know why?

  4. #4
    SitePoint Addict
    Join Date
    Feb 2012
    Location
    Kiwi in Bangkok
    Posts
    373
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Hello mjpr & tom8,

    yes http://validator.w3.org/feed/ tells me the below line:

    It looks like this is a web page, not a feed. I looked for a feed associated with this page, but couldn't find one. Please enter the address of your feed to validate.

    I dont understand ... lol all help ideas appreciated

  5. #5
    SitePoint Addict
    Join Date
    Feb 2012
    Location
    Kiwi in Bangkok
    Posts
    373
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Ok all is working

    Yes the RSS Feed is working fine, it was the way I was loading it into the reader, Plus being told that is NOT a valid syndication Feed

    is NOT a valid syndication Feed is incorrect, the site RSS feeds are alive and well,

    thank you all who have contributed


Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •