xml geht, php nicht

Achja ich vergass noch zu erwähnen das sich das php script und die swf im document root des webservers befinden. im document root des Webservers befinden sich dann auch der Bilderordner ohne weitere Unterverzeichnisse.
 
Hi,

Du kannst im Flash-Vorschau Modus auf die Daten Deines Servers zugreifen (dort funktioniert auch trace).

Liegt denn die html-Seite, in der der Flashfilm eingebettet ist, auch im Document-Root?

Was passiert, wenn Du

1. <?xml version="1.0" encoding="UTF-8" standalone="yes" ?> weglässt?

2 alle Tags klein schreibst?

Gruß
.
 
Vielleicht mag Flash das nicht, wegen den nicht gesetzten headern.

Füg mal in dein PHP Script am Anfang das hier ein:
PHP:
header('Content-type: text/xml');
 
Vielleicht mag Flash das nicht, wegen den nicht gesetzten headern.
Habe ich auch schon mal dran gedacht, allerdings frisst Flash meiner Erfahrung nach problemlos text/plain als ANSI oder UNICODE ...

Da die gepostete php-Datei auf meinem System problemlos lief, würde ich den Fehler bei den Pfad- und Dateinamen vermuten. Vielleicht postet der Threadersteller ja mal einen Link zur PHP-Datei, die sich auf seinem Server befindet.

Gruß
.
 
Hallo,

sorry das ich jetzt erst wieder antworte. Kam aber gestern nicht mehr dazu.
Also das ganze Konstrukt funktioniert immernoch nicht. Die php Datei auf dem Server funktioniert zwar allein für sich, aber nicht in zusammenarbeit mit dem Flash.
Siehe Link:
Link zur PHP Datei

Was mich an der ganzen Geschichte nur wundert ist einfach die Tatsache das die reine XML Datei auf dem Server funktioniert. Die Bilder werden anstandslos geladen und die Galerie funktioniert. Wenn es Probleme mit dem Pfad oder den Dateirechten geben würde sollte ja dies schon nicht mehr gehen. Ich tausche lediglich die Source in das PHP File um. Mittels dieses PHP files erstelle ich ja auch die XML datei - mache also den Schritt händisch den Flash machen sollte. Händisch funktionierts aber aus Flash heraus nicht.

Hier einmal so wie ich es bisher mit statischer xml Datei habe
Statisches XML

und hier einmal mit Dynamischer PHP Datei:
Dynamische PHP Datei

Ich bin mal so richtig ratlos und weis mir im Moment nicht zu helfen. Daher bin ich auch recht dankbar das mein Problem scheinbares Interesse geweckt hatt.

Gruß
tholie
 
Der IE 7 frisst deine PHP Xml Datei auch nicht. Mach mal nach der XML Deklaration 'nen Linebreak rein. Haste den Header jetzt gesetzt?
 
Hallo und juhu :)

also das mit dem header war ne gute Idee :). der fehlende header war zwar nicht daran schuld das es nicht funktioniert hatt aber die fehlermeldung die erschien als ich den header gesetzt hatte hatt mich auf den fehler aufmerksam gemacht.

es war nur ein leerzeichen vor <?php , so simpel und banal das ich es schon fast gar nicht glauben konnte.

Deswegen funktionierte auch die php datei für sich alleine, flash scheint irgendwas gegen leerzeichen an der falschen stelle zu haben :)

ok bleibt nur noch zu klären wie das leerzeichen dahingekommen ist

gruß
tholie
 
Hallo,
Ihr Problem hat dermaßen mein Interesse geweckt, dass ich mich als Anfänger mit PHP, XML und Flash beschäftigt habe und so denke ich auch die Lösung gefunden habe.

Hier die etwas geänderte PHP-Datei makexml.php
PHP:
<?php
header('Content-type: text/xml');
$imgdir = "images";


    echo('<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>');
    echo('<Galery>');

    $fd = opendir($imgdir);
    while($pic = readdir($fd)) {
        //if(preg_match('/\.(jpg|gif|png)$/i', $pic)) {
            //$size = getimagesize($imgdir . $pic);
            //echo ('<pic src="'. $pic . '" width="'. $size[0] .'" height="'. $size[1] .'"></pic>') ."\n";
            if(!is_dir($pic)&&substr($pic,-3)=="jpg" || substr($pic,-3)=="gif" || substr($pic,-3)=="png"){
            //echo ('<pic src="'. $pic.'"></pic>')." \n";
              echo ('<pic src="'. $imgdir."/".$pic.'"></pic>')." \n";
        }
    }
    echo('</Galery>');
?>

Nachfolgend das AS-Skipt ins 1. Schlüsselbild und auf die Bühne einen MC mit Instanzname container legen.
Code:
var x:XML = new XML();
x.ignoreWhite = true;
var urls:Array = new Array();
var hyperlinks:Array = new Array();
x.onLoad = function() {
    var photos:Array = this.firstChild.childNodes;
    for (i = 0; i < photos.length; i++) {
		
        urls.push(photos[i].attributes.src);
		//urls.push(photos[i].attributes.url);
		//urls.push(photos[i]);
		trace(photos[i]);
        hyperlinks.push(photos[i].attributes.hyperlink);
        container.createEmptyMovieClip("image" + i, i);
        container["image" + i].createEmptyMovieClip("holder", 0);
        //container["image" + i].id = i;
        //container["image" + i].holder.loadMovie(urls[i]);
		
		container["image" + i].id = i;
        container["image" + i]._x = i * 110;
        container["image" + i].holder.loadMovie(urls[i]);
					

        container["image" + i].onRelease = function() {
            getURL(hyperlinks[this.id]);
		
        };
    }
};
x.load("http://localhost/makexml.php");

In der PHP-Datei beachte den Slash in
Code:
echo ('<pic src="'. $imgdir."/".$pic.'"></pic>')." \n";
Dieser muss in $imgdir = "images"; entfallen.
In dem Flash-Skript muss aributes = src angegeben werden.
Ich hoffe, dass hilft Ihnen weiter.
Freundliche Grüße
Fraengel
 
kann, muss aber nicht.

da ich zwecks späterer erweiterung darauf verzichten wollte irgendwo im php script komplette Pfade anzugeben bzw. erzeugen zu lassen, wird bei der derzeitigen Version der Pfad im AS erzeugt. So muss ich zwar derzeit bei einer Pfadänderung den Image Ordner 2x angeben, dies wird jedoch später (bzw. derzeit) soweit geändert das es eine zentrale xml Datei geben wird in der sämtliche Pfad angaben getätigt werden.

Das PHP-Script soll mir auserdem lediglich den Datei Namen per XML übergeben und nicht den Pfad vom rootdir aus.

Wie ich auch bereits im Vorposting angemerkt habe, funktioniert die ganze Geschichte mittlerweile auch, und der Fehler war lediglich ein Leerzeichen vor " <?php". Somit wurde ein Leerzeichen gesendet noch bevor ein gültiger xml header erzeugt werden konnte. Und damit scheint Flash-AS ein Problem zu haben.

Gruß tholie
 

Neue Beiträge

Zurück