Hallo!
Ich habe folgendes Problem: Für die von mir erstellte Homepage versuche ich Daten aus einer xml-Datei auszulesen und darzustellen.
Wenn ich dafür ein eigenes Modul erstelle funktioniert das ganze auch problemlos.
Hier mal der Code der mod_gildeninfo.php:
Der Umweg mit function get_document($url) ist leider nötig, da ich per simplexml_load_file($url) nicht zum Ziel komme. Habe 1und1 als Webhoster und die Servereinstellungen erlauben den Befehl nicht.Code:<?php defined( '_JEXEC' ) or die( 'Restricted Access' ); 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 ($data = get_document("http://www.buffed.de/public/war/xml/guild/3351.xml") ){ $xml = simplexml_load_string($data); $xml = new simpleXMLElement($xml->asXML()); } echo "Name: " . $xml['name'] . "<br />"; echo "Gildenlevel: " . $xml['rank'] . "<br />"; echo "Eroberte Banner: " . $xml->summary[0]->bannerscaptured . "<br />"; echo "Verlorene Banner: " . $xml->summary[0]->bannerslost . "<br />"; echo "Gesamte Gildenerfahrung: " . $xml->summary[0]->expcurrent . "<br />"; echo "Ruf: " . $xml->summary[0]->renown . "<br />"; echo "Anzahl Chars: " . $xml['numchars'] . "<br />"; echo "Gründungsdatum: " . $xml->summary[0]->creationdate . "<br />"; echo "Zuletzt aktualisiert am: " . $xml['lastupdate'] . "<br />"; ?>
Wie gesagt: Das Modul funktioniert so und die abgefragten Daten werden problemlos dargestellt. Auch wenn ich das als php-script ohne "defined( '_JEXEC' ) or die( 'Restricted Access' );" abspeicher und direkt auf dem Server anspreche, funktioniert alles wie gewünscht.
Doch wenn ich versuche, den Inhalt des Moduls in den content einzubinden bekomme ich immer Error 403 - Forbidden. Auch wenn ich das php-script über den wrapper oder per kl_php oder ähnliche Plugins einbinden möchte führt das zu dieser Fehlermeldung.
Das ließ mich soweit verzweifeln, daß ich mich an die Erstellung einer einfachen Komponente wagte, um diese dann einzubinden. Aber wenn ich dann auf die entsprechende Seite zugreife - Error 403 - Forbidden. Sitze seit längerem an der Geschichte (bin eigentlich mit php und xml nicht so vertraut und musste mir das alles mühsam erlesen, bis ich überhaupt das Modul ans laufen gebracht habe) und dementsprechend mit meinem Latein schon am Ende und völlig verzweifelt.


LinkBack URL
About LinkBacks
Zitieren

Lesezeichen