rss reader mit simplexml und allow_urlopen off

Gesperrt
mittax
Beiträge: 13
Registriert: Mo 30. Jun 2008, 18:21
Kontaktdaten:

rss reader mit simplexml und allow_urlopen off

Beitrag von mittax » Fr 1. Aug 2008, 19:56

Hallo Zusammen,

Ich habe das Modul RSS-Reader auf simplexml umgestellt. Nun läuft der RSS Reader auch mit abgeschaltetem apache allow_url_open.
Die Funktion get_document liest das xml per Get-Request ein.


Als RSS-Feed habe ich Heise.de verwendet. Ihr solltet also Eure Items anpassen.

Sonderzeichen etc werden utf8_decoded

OUTPUT

Code: Alles auswählen

<?php

cInclude("pear", "XML/Parser.php");
cInclude("pear", "XML/RSS.php");
  
function get_document($url) {

    $content = '';
    $is_header = TRUE;

    $base_url = parse_url($url);

    if ($fp = @fsockopen($base_url['host'], 80, $errno, $errstr, 5)) {

        if (!empty($base_url['query'])) {
            $query = '?'.$base_url['query'];
        } else {
            $query = '';
        }

        $data = 'GET '.$base_url['path'].$query." HTTP/1.0\r\n".
                        'Host: '.$base_url['host']."\r\n".
                        "Connection: Close\r\n\r\n";

        stream_set_timeout($fp, 5);

        fputs($fp, $data);

        while(!feof($fp)) {

        $line = fgets($fp, 4096);

        if (!$is_header) {

            $content .= $line;

        } else {

            if (strlen(trim($line)) == 0) {

                $is_header = FALSE;

            }

            }

        }

        fclose($fp);
        return $content;
       



    } else {

        return FALSE;

    }

} 

if ("CMS_VALUE[0]" == "")
{
  $sFeed = "http://www.contenido.org/rss/de/news";
} else {
  $sFeed = "CMS_VALUE[0]";
}

if ("CMS_VALUE[2]" == "")
{
  $FeedMaxItems = 999;
} else {
	$FeedMaxItems = intval("CMS_VALUE[2]");
} 


$sFeedContent = get_document($sFeed);
$rss_feed = simplexml_load_string($sFeedContent);
$tpl = new Template;

$i = 0;

foreach ($rss_feed->entry as $item)
{

	if ($i < $FeedMaxItems) {
	    $tpl->set("d", "TITLE", htmlentities(utf8_decode($item->title),ENT_QUOTES));
    	    $tpl->set("d", "LINK", htmlentities(utf8_decode($item->id),ENT_QUOTES));
            $tpl->set("d", "UPDATED", htmlentities(utf8_decode($item->updated),ENT_QUOTES));
    	    $tpl->set("d", "DESCRIPTION", htmlentities(utf8_decode($item->sumaray),ENT_QUOTES));
    	    $tpl->set("d", "READ_ON", mi18n("weiterlesen"));
	    $tpl->next();
	}
	$i++;
}

$tpl->generate($cfgClient[$client]["path"]["frontend"]."templates/"."CMS_VALUE[1]");
?>




Mc
Beiträge: 188
Registriert: Mi 2. Mär 2005, 21:19
Kontaktdaten:

Beitrag von Mc » So 3. Aug 2008, 19:11

Hallo mittax,

danke. Ist genau das, was ich eben gesucht habe. Ich habe aus Sicherheitsgründen allow_url_open auf off gestellt und auf 4.8.7 ein upgrade durchgeführt.

Wenn ich in der Konfiguration des Artikels als url "http://www.sportgate.de/rss/handball/rss.xml" eingebe, dann wird überhaupt nichts angezeigt, wenn ich die url leer lasse, dann kommt eine Reihe von Fehlermeldungen.

Siehe http://www.webec.de

Gruß
Mc

mittax
Beiträge: 13
Registriert: Mo 30. Jun 2008, 18:21
Kontaktdaten:

Hallo

Beitrag von mittax » Di 23. Sep 2008, 09:56

Hallo ,

Schau mal nach den Items, ob diese im XML vorkommen. Wenn ja mach mal ein echo auf $content und schau, ob was ankommt.

if ($i < $FeedMaxItems) {
$tpl->set("d", "TITLE", htmlentities(utf8_decode($item->title),ENT_QUOTES));
$tpl->set("d", "LINK", htmlentities(utf8_decode($item->id),ENT_QUOTES));
$tpl->set("d", "UPDATED", htmlentities(utf8_decode($item->updated),ENT_QUOTES));
$tpl->set("d", "DESCRIPTION", htmlentities(utf8_decode($item->sumaray),ENT_QUOTES));
$tpl->set("d", "READ_ON", mi18n("weiterlesen"));
$tpl->next();
}
$i++;

Gruss

mittax

hohorstmann
Beiträge: 270
Registriert: Do 27. Apr 2006, 02:38
Wohnort: Tief im Westen
Kontaktdaten:

Beitrag von hohorstmann » Mo 3. Nov 2008, 12:03

Da ich auch mit dem RSS-Reader "rumkämpfe", habe ich Dein Output-Modul eingesetzt und bei mir auch Dein letztes Posting überprüft. Angezeigt wird nichts. Kann es sein, dass trotzdem 1&1 noch das Problem ist?
Contenido 4.8.8. bei 1&1
im RSS-Reader gibt es folgende Einstellungen:
URL: http://rss.feedsportal.com/c/728/f/9463/index.rss (das ist vom STERN, ich habe aber auch zig andere eingestellt)
rss-Template: rss_template.html
Anzahl Einträge: 10

Gebe ich keine URL ein, dann gibt´s im Front-End den Fehler: /homepages/40/d..../htdocs/cms/templates/
Gruß, Ho

Andreas
Beiträge: 254
Registriert: So 16. Nov 2003, 14:48
Wohnort: Reichshof
Kontaktdaten:

Beitrag von Andreas » Fr 7. Nov 2008, 14:32

Hallo zusammen,

gibt es zu dem Problem eine Lösung?
Bei mir ist es ähnlich:
- Demoseite funktionierte
- Neues Layout... nichts wird mehr angezeigt.

Es kann doch kein 1&1 Problem sein, wenn es zuvor in der Demoversion geklappt hat.
Gruß
Andreas

hohorstmann
Beiträge: 270
Registriert: Do 27. Apr 2006, 02:38
Wohnort: Tief im Westen
Kontaktdaten:

Beitrag von hohorstmann » Fr 7. Nov 2008, 15:25

Na ja, wir berühren dort sensible Stellen im Zusammenspiel von CONTENIDO und dem Provider, die Sicherheitslücken betreffen (Stichwort Code Injection).
Nach dem Lesen von zig Threads hier im Forum und viel "ausprobieren" habe ich keine Lösung gefunden, obwohl eine solche hier und da veröffentlicht wird. Da ich mir nicht sicher bin, ob es ein CONTENIDO-Thema ist, wollte ich es hier im Forum nicht weiter behandeln. Es ist ja auch umfangreich beschrieben.
Da ich nicht der PHP-Spezi bin, verstehe ich zwar den Inhalt und habe mich auch an der Umsetzung probiert, aber wie gesagt ..
Also gebe ich auf und muss meinem Kunden erklären, warum ich das jetzt mit CONTENIDO doch nicht kann". So´n Sch...

Resümee: RSS-Reader bei 4.8.8 geht nicht !??

Andreas
Beiträge: 254
Registriert: So 16. Nov 2003, 14:48
Wohnort: Reichshof
Kontaktdaten:

Beitrag von Andreas » Fr 7. Nov 2008, 15:48

hohorstmann hat geschrieben: Also gebe ich auf und muss meinem Kunden erklären, warum ich das jetzt mit CONTENIDO doch nicht kann". So´n Sch...

Resümee: RSS-Reader bei 4.8.8 geht nicht !??
Das kann es doch aber nicht sein!
Eine neue Contenido-Version und eine so wichtige Funktion kann nicht mehr genutzt werden???
Das kann man dem Kunden doch nicht wirklich erklären.

Zumal es ja bei der Demo-Version klappt!
Gibt es denn wirklich niemand, der sich mit dem Problem schon befasst und eine Lösung hat?
Gruß
Andreas

MakD42
Beiträge: 103
Registriert: Sa 8. Nov 2003, 19:01
Wohnort: Marburg
Kontaktdaten:

Re: rss reader mit simplexml und allow_urlopen off

Beitrag von MakD42 » Mi 6. Mai 2009, 12:45

Hy,

habe die Änderung eingebaut! Dabei habe ich festgestellt, dass nur "ATOM" RSS wie z.B. von Heise laufen.
Alle anderen (RSS 2.0 o.ä.) funktionieren nicht.

Könnte das ein Anhalt für die finale Lösung mit dem RSS Modul geben?

funomat
Beiträge: 345
Registriert: Do 26. Feb 2004, 22:13
Wohnort: Neuss
Kontaktdaten:

Re: rss reader mit simplexml und allow_urlopen off

Beitrag von funomat » Di 20. Okt 2009, 11:14

Gibt es für dieses Problem wirklich keine Lösung?? Wie kann es sein, dass im Contenido Backend die Contenido-Eigenen RSS-Nachricht gelesen werden können, das selbe im Modul aber nicht funktioniert?
tiago.de | adk-msi.de | iseringhausen.de | the-iseringhausen.de
Manchmal glaube ich, der beste Beweis dafür, dass es anderswo im Weltall intelligentes Leben gibt, ist der, dass noch niemand versucht hat, Kontakt zu uns aufzunehmen. (Calvin & Hobbes)

Gesperrt