rss feed anbieten

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • rss feed anbieten

    Hallo,

    Ich habe versucht, ein rss feed anzubieten mit dynamischen inhalten...und bin mal wieder frustriert, weils nicht klappt.

    hier ist der code

    PHP-Code:
    <?php header("Content-type: text/xml");
    echo 
    '<'.'?xml version="1.0" encoding="ISO-8859-1"?'.'>'?>
    <rss version="2.0">

    <channel>
        <title>xyzs Blog.</title>
        <language>de-ch</language>
       
        <description>Feed zu meinem Blog</description>
        <copyright>Copyright: xyz<?php date(y); ?></copyright>

    <?php

     
    include "inc/config.php";
        @
    mysql_connect(MYSQL_HOSTMYSQL_USERMYSQL_PASS) OR
            die(
    "Keine Verbindung zur Datenbank. Fehlermeldung: ".mysql_error());
        
    mysql_select_db(MYSQL_DATABASE) OR
            die(
    "Konnte Datenbank nicht benutzen, Fehlermeldung: ".mysql_error());

    $sql "SELECT
                        ID,
                        title,
                        descr,
                        date
                    FROM
                        news
                    ORDER BY
                        date DESC"
    ;
                                
    $result mysql_query($sql) OR die(mysql_error());
            if(
    mysql_num_rows($result)) {
                
    $news_ID   = array();
                
    $news_title   = array();
                
    $news_descr  = array();
                
    $news_date    = array();
                while(
    $row mysql_fetch_assoc($result)) {
                    
    $news_ID[]   = $row['ID'];
                    
    $news_title[]   = $row['title'];
                    
    $news_descr[]  = $row['descr'];
                    
    $news_date[]    = $row['date'];

                }

                foreach (
    $news_date as $id => $date) {


    echo 
    "<item>      \n";
    echo 
    "<title>".$news_title[$id]."</title> \n";
    echo 
    "<description>".$news_descr[$id]."</description>    \n";
    echo 
    "<pubDate>".$news_date[$id]."</pubDate>   \n";
    +++
    echo 
    "</item>    \n";
    }

    }


    ?>
    </channel>
    </rss>
    Ich weiß nicht ganz wo der fehler ist....aber auf meiner rss-seite sind keine Einträge zu finden, die seite an sich ist da, es wird auch Überschrift etc. angezeigt, nur das dynamische halt nicht.

    Einträge in der Datenbank sind garantiert vorhanden ;-)


    Könnt ihr den Fehler finden?

    Echt tausend dank!!!
    Zuletzt geändert von McPU; 29.08.2010, 16:28.

  • #2
    bitte erstmal Code umbrechen!
    desweiteren gibt es wieder einmal das Problem der Zeichenverkettung. Das Syntax highlighting sollte dir schon zeigen, dass
    PHP-Code:
    echo "<guid><a href="http://www.pudet.de/sebastian-dziubiel/index.php?location=blog&news_id=" target="_blank">
    http://www.pudet.de/sebastian-dziub...n=blog&news_id=a>".$news_ID[$id]."</guid>   \n"; 
    so nicht funktioniert ersetze die äußeren " durch einfach ', dann hast du schonmal was vernünftiges stehen

    Kommentar


    • #3
      Code umbrechen (wie schon gesagt)
      so nicht funktioniert ersetze die äußeren " durch einfach ', dann hast du schonmal was vernünftiges stehen
      Bringt ihm nicht soviel weil er in diesem String auch noch \n drin hat --> er braucht die doppelten Anführungszeichen (zumindest für den Teil wo \n drinsteht)
      @topicstarter
      Mach dich mal über die hohe Kunst des Escapens von Sonderzeichen innerhalb von Strings schlau (Manual kann helfen).

      Gruss

      tobi
      Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

      [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
      Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

      Kommentar


      • #4
        Original geschrieben von jahlives

        Bringt ihm nicht soviel weil er in diesem String auch noch \n drin hat --> er braucht die doppelten Anführungszeichen (zumindest für den Teil wo \n drinsteht)
        @topicstarter
        Mach dich mal über die hohe Kunst des Escapens von Sonderzeichen innerhalb von Strings schlau (Manual kann helfen).
        Oder aussen Doppelte und innen Enfache. Dann kannst du dir das Escapen auch ersparen. Also
        PHP-Code:
        echo "<guid><a href='http://www.pudet.de/sebastian-dziubiel/index.php?location=blog&news_id=$news_ID[$id]'
                  target='_blank'></a></guid>\n"
        ;    // funktioniert

        echo '<link><a href="http://www.pudet.de/sebastian-dziubiel/index.php?location=blog&news_id=$news_ID[$id]"
                  target="_blank"></a>$news_ID[$id]</link>\n'
        ;   // funktioniert nicht 
        Gruss
        H2O

        Kommentar


        • #5
          Nein Jungs, das seht ihr falsch! Das Forum hat seine URLs in Links umgewandelt! Da ist nix mit Escapen!

          Kommentar


          • #6
            am escapen liegts nicht!

            oh, da hat das forum tatsächlich was verändert!

            so ist es original:
            PHP-Code:

            echo "<guid>http://www.pudet.de/xyz/index.php?location=blog&news_id=".$news_ID[$id]."</guid>   \n";
            echo 
            "<link>http://www.pudet.de/xyz/index.php?location=blog&news_id=".$news_ID[$id]."</link>   \n"
            Ich hab mal den ganzen dynamischen Teil in eine test.php datei ausgelagert und geguckt was die ausgibt.

            Das wird ausgegeben(quellcode):

            PHP-Code:

            <item>      
            <
            title>Kakteen im Angebot</title
            <
            description>Das ist ein langer KurztextLänger geht's momentan nicht. Man denkt gar nicht, wie viel hier so reinpasst. Das ist wirklich eine ganze Menge. Lorem ipsum dolor</description>    
            <pubDate>2008-01-29 22:54:51</pubDate>   
            <guid>http://www.pudet.de/xyz/index.php?location=blog&news_id=18</guid>   
            <link>http://www.pudet.de/xyz/index.php?location=blog&news_id=18</link>   
            </item>    
            <item>      
            <title>Neues Gesteck</title> 

            <description>Seit heute finden Sie in unserem Shop ein neues Gesteck.</description>    
            <pubDate>2008-01-29 22:52:18</pubDate>   
            <guid>http://www.pudet.de/xyz/index.php?location=blog&news_id=17</guid>   
            <link>http://www.pudet.de/xyz/index.php?location=blog&news_id=17</link>   
            </item>    
            <item>      
            <title>Homepage online!</title> 
            <description>Die Gärtnerei Matthey stellt sich auf ihrer Homepage vor!</description>    
            <pubDate>2008-01-29 22:48:40</pubDate>   

            <guid>http://www.pudet.de/xyz/index.php?location=blog&news_id=16</guid>   
            <link>http://www.pudet.de/xyz/index.php?location=blog&news_id=16</link>   
            </item> 
            das is doch eigentlich genau das was ich will.


            Im rss wird TROTZDEM kein eintrag angezeigt!! woran kann das liegen?? Kenn sich jemand mit rss aus?


            vielen dank für die bisherigen antworten und noch mehr dank den kommenden!
            Zuletzt geändert von McPU; 02.02.2008, 16:39.

            Kommentar


            • #7
              @Topicstarter
              Bitte brich deinen Code um, damit man nicht zur Seite scrollen muss.
              Zum Prüfen von RSS Feeds bietet sich z.B. http://feedvalidator.org/
              Und bei meinem Feed steht noch:
              Code:
              <?xml version="1.0" encoding="ISO-8859-1" ?> 
              <rss version="2.0">
              <channel>
              ...
              Und schau dir bitte mal auch den Aufbau eines RSS Feeds bei http://de.wikipedia.org/wiki/RSS an

              Gruss

              tobi
              Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

              [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
              Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

              Kommentar


              • #8
                Danke für den Tipp mit dem validator!


                Ich denke, dass es an diesem Fehler hier liegt:

                line 14, column 76: XML parsing error: <unknown>:14:76: not well-formed (invalid token)

                Das ist die betroffene Zeile:

                <guid>http://www.pudet.de/xyz/index.php?location=blog&news_id=18</guid>



                Das, was mir der Validator als Hilfe anbietet versteh ich nicht.

                Ich hoffe jemand von euch kann mir sagen, was an dieser Zeile nicht in ordnung ist.
                Zuletzt geändert von McPU; 02.02.2008, 16:38.

                Kommentar


                • #9
                  & muss als Entität geschrieben werden, also & a m p ;

                  Kommentar

                  Lädt...
                  X