Zurück   Flashforum > Flash und Server > Flash Remoting

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 27-08-2003, 17:41   #1 (permalink)
Notorischer Raser
 
Registriert seit: May 2003
Ort: Heinsberg
Beiträge: 83
Unhappy Flash PHP AMF Problem

Hi,

habe gerade mal wieder versucht mich auf den neusten Stand bei PHP Flash mit AMF zu bringen. Klappt aber nicht so wirklich.

Vielleicht hat von euch ja jemand ein Tipp was der Fehler sein könnte.

hier ist die Anwendung:
http://www.heinsberg.org/test/test.swf

Dort möchte ich eine Rückgabe von ein PHP Script machen,
bekomme aber die Meldung:
Error: no class named HelloWorld is known to the gateway

ich weiß nicht wo ich suchen soll hab schon alternativen ausprobiert und übersehe scheinbar was.

Also das Verzeichnis mit /flashservices ist drauf .

Die Datei test.swf ladet folgende Datei bzw connectet mit der Datei gateway.php welche folgenden code beinhaltet:


PHP-Code:
<?php

    
// Include AMFPHP Gateway... 
    
include "../flashservices/app/Gateway.php";

    
// Create a new Gateway Object which will handle communication 
    // between PHP Remoting and Flash
    
$gateway = new Gateway();
    
$gateway->setBaseClassPath("services/");
     
$gateway->service();
?>
Dann habe ich ein Verzeichnis /services welche folgende Datei beinhaltet HelloWorld.php mit folgender Syntax:

PHP-Code:
<?php
  
class HelloWorld {

    function 
HelloWorld {
      
$this->methodTable = array (
        
'sayHelloWorld' => array (
          
'description' => 'Writes "Hello World" to Flash',
          
'access' => 'remote',
          
'roles' => 'HelloGroup',
          
'arguments' => array()
        )
      );
    }

    function 
sayHelloWorld () {
      return 
'Hello World';
    }
  }

?>
Mein Action Script sieht so aus:

ActionScript:
  1. #include "NetDebug.as"
  2. #include "NetServices.as"
  3. helloResult = new Object();
  4. helloResult.onResult = function(data){
  5.   _root.hello_txt.text = data;
  6. }
  7.  
  8. helloResult.onStatus = function(status){
  9.   _root.hello_txt.text = "Error: " + status.description;
  10. }
  11.  
  12. System.onStatus = helloResult.onStatus;
  13. var serverConn =  NetServices.createGatewayConnection("http://www.heinsberg.org/test/gateway.php");
  14. // Retrieve service
  15. var servD = serverConn.getService("HelloWorld", helloResult);
  16. servD.sayHelloWorld();

Die Dateien falls jemand möchte können geladen werden unter:

http://www.heinsberg.org/test/gateway.phpt
http://www.heinsberg.org/test/test.fla
http://www.heinsberg.org/test/services/HelloWorld.phpt

Vielleicht fällt ja jemand auf warum das nicht geht.

Vielen Dank schonmal

Peter Karsten
petter ist offline   Mit Zitat antworten
Alt 28-08-2003, 21:33   #2 (permalink)
netTrek
 
Benutzerbild von netTrek
 
Registriert seit: Jul 2001
Ort: 46282 Dorsten
Beiträge: 2.972
Du hast in
http://www.heinsberg.org/test/gateway.phpt
einen Absoluten Pfad zum Gateway benutzt. Ist das in der PHP auch der Fall? Versuche es auf jeden Fall nur mit relativen Pfaden - wenn es geht binde flashservices über die PHP_ini oder htaccess als Include Verzeichnis an. Damit ersparst dir Verzeichnisangaben und oft viel Ärger.

Auch hatte ich beim testen die Erfahrung gemacht, dass wenn keine Klasse gefunden wurde (die aber da ist/war) - ich die Klasse ienfach mal mit samt der DAtei umbenannt hatte - und auf einmal funktionierte es ???

Grundsätzlich fällt mir aber kein Fehler auf ...

SABAN
__________________
Saban Ünlü

netTrek GmbH & Co. KG
Softwareentwicklung, Design & Konzeption
www.netTrek.de
netTrek ist offline   Mit Zitat antworten
Alt 28-08-2003, 21:42   #3 (permalink)
netTrek
 
Benutzerbild von netTrek
 
Registriert seit: Jul 2001
Ort: 46282 Dorsten
Beiträge: 2.972
Außerdem, sehe ich gerade, dass deine Serviceklase: http://www.heinsberg.org/test/services/HelloWorld.php einen PHP-Fehler aufweist: Parse error: parse error, expecting `'('' in /home/www/www.heinsberg.org/html/test/services/HelloWorld.php on line 4.

So kann das nichts werden ...

Erst den Fehler beseitigen!

SABAN
__________________
Saban Ünlü

netTrek GmbH & Co. KG
Softwareentwicklung, Design & Konzeption
www.netTrek.de
netTrek ist offline   Mit Zitat antworten
Alt 28-08-2003, 21:57   #4 (permalink)
Notorischer Raser
 
Registriert seit: May 2003
Ort: Heinsberg
Beiträge: 83
Zitat:
Geschrieben von netTrek
wenn es geht binde flashservices über die PHP_ini oder htaccess als Include Verzeichnis an. Damit ersparst dir Verzeichnisangaben und oft viel Ärger.
die php.ini ändere ich ungern.
was ich in die .htaccess schreiben muss weiß ich noch nicht.
kann man das evtl auch über die .httpd.conf machen ?

Dort habe ich bei einigen drin stehen
php_admin_value open_basedir
muss ich das evtl bei der Domain eintragen damit ein include über /document_root funzt ?


Zitat:
Auch hatte ich beim testen die Erfahrung gemacht, dass wenn keine Klasse gefunden wurde (die aber da ist/war) - ich die Klasse ienfach mal mit samt der DAtei umbenannt hatte - und auf einmal funktionierte es ???
Werde ich mal versuchen, ich berichte dann .

Danke schonmal.

gruß
Peter Karsten
petter ist offline   Mit Zitat antworten
Alt 28-08-2003, 23:00   #5 (permalink)
netTrek
 
Benutzerbild von netTrek
 
Registriert seit: Jul 2001
Ort: 46282 Dorsten
Beiträge: 2.972
Wenn du an der PHP Ini nichts machen willst leg auf root eine .htaccess-Datei mit folgendem Inhalt ab:
php_value include_path ".:/var/www/flashservices".
(/var/www - muss du entsprechend deines Servers anpassen)
WICHTIG: htaccess funktioniert nicht wen php als Modul installiert ist!

SABAN
__________________
Saban Ünlü

netTrek GmbH & Co. KG
Softwareentwicklung, Design & Konzeption
www.netTrek.de
netTrek ist offline   Mit Zitat antworten
Alt 29-08-2003, 12:47   #6 (permalink)
Notorischer Raser
 
Registriert seit: May 2003
Ort: Heinsberg
Beiträge: 83
Ok.
Wegen den Parse Error sorry, hab lokal das error_reporting level was niedriger

Also
habe nun eine .htaccess erstellt mit folgenden Inhalt:

PHP-Code:
php_value include_path ".:/home/www/www.heinsberg.org/flashservices/" 
dann habe ich in der Datei: www.heinsberg.org/test/gateway.php
folgendes geändert:

PHP-Code:
include "/home/www/www.heinsberg.org/flashservices/app/Gateway.php"
Den Parse Error in www.heinsberg.org/test/services/HelloWorld.php behoben

Nun sieht alles schon etwas besser aus, allerdings bekomme ich über das Flash nun folgende Meldung:

Error: This user is not does not have access to sayHelloWorld
Siehe: http://www.heinsberg.org/test/test.swf

Also stimmt immer noch irgendwas nicht ganz grummel.


Die Sache mit der .htaccess hab ich nun nicht ganz verstanden, wofür muss ich den Include Pfad dort angeben ? Wenn ich den doch auch in der gateway.php reinschreibe.

Also das Flashservices scheint ja schonmal zu funkttionieren weil die Meldung wird ausgegeben in der datei
/flashservices/app/Executive.php

Warum es allerdings dazu kommt hab ich noch nicht erfahren.

Evtl noch jemand ein Tipp dazu ?

Danke

Peter Karsten
petter ist offline   Mit Zitat antworten
Alt 29-08-2003, 13:43   #7 (permalink)
netTrek
 
Benutzerbild von netTrek
 
Registriert seit: Jul 2001
Ort: 46282 Dorsten
Beiträge: 2.972
Sorry - der Ordner Flashservice selbst darf nicht in die htaccess sonder der ordner darüber also in deinem Fall:

php_value include_path ".:/home/www/www.heinsberg.org/"

(Hast du dich informiert, ob du PHP Variablen mit htaccess beeinflussen kannst??)

Wenn du das gemacht hast kannst du immer

include "flashservices/app/Gateway.php";

verwenden ohne dir Gedanken darüber zu machen wo flashservices liegt (das hast du ja schon in php_value include_path def.). Es erspart auf diese weise einfach viel arbeit und man kann sich mit dem relativen Link nicht mehr vertun...

home/www - bist du bei Puretec?

OK... ich hoffe es klappt jetzt ... falls nicht ich hab einen Artikel in der aktuellen internet Intern veröffentlicht zu dem Thema und auf meiner Website... http://netTrek.de findest du auch einen Flashforum-Konferenz Vortrag zu dem Thema...

SABAN
__________________
Saban Ünlü

netTrek GmbH & Co. KG
Softwareentwicklung, Design & Konzeption
www.netTrek.de
netTrek ist offline   Mit Zitat antworten
Alt 29-08-2003, 14:02   #8 (permalink)
Notorischer Raser
 
Registriert seit: May 2003
Ort: Heinsberg
Beiträge: 83
Zitat:
Geschrieben von netTrek
(Hast du dich informiert, ob du PHP Variablen mit htaccess beeinflussen kannst??)

home/www - bist du bei Puretec?
Ja, hab bei Puretec nen Rootserver gemietet, damit ich gerade bei solchen Experimenten Frei hand habe.

Hab das jetzt geändert in der .htaccess nun wird allerdings ein Download gestartet wenn ich
http://www.heinsberg.org/test/gateway.php

eingebe, demnach geht es also nicht. Bzw. Das Flash spricht den Gateway noch an , hmm ist das evtl extra so gedacht ?

Zitat:
auf meiner Website... http://netTrek.de findest du auch einen Flashforum-Konferenz Vortrag zu dem Thema...
SABAN
Gucks mir gerade an, werde noch mal von 0 anfangen ,
also deinen Vortrag mal durchgehen.

danke nochmal
bis spaeter

peter karsten
petter ist offline   Mit Zitat antworten
Alt 29-08-2003, 14:32   #9 (permalink)
Notorischer Raser
 
Registriert seit: May 2003
Ort: Heinsberg
Beiträge: 83
Hi Saban,

also habe mir jetzt mal dein Vortrag angeschaut und einige Beispiele angeguckt, manche gehen manche nicht.

z.B. ReturnData krieg ich wieder die Meldung No Class vorhanden.

Bei ReceiveAndSend wiederrum funktioniert es einwandfrei.

Bei dem Babel Teil muss ich noch gucken wofür das SOAP Teil gut ist. Das hab ich naemlich auch nicht ausprobiert.

Aber im groben hab ich nun endlich geschnallt wo ich ansetzen muss.

Vielen Danke noch mal für deine Hilfe.

gruß
Peter Karsten
petter ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 03:08 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele