Ansteuern eines PHP scriptes auf einem anderen Server


surfa

Mitglied
Hi

Bin gerade Dabei mir ein Kontaktformular einzurichten. Leider unterstützt mein Provider kein PHP. Um dieses Problem zu lösen möchte ich nun auf einen anderen Server ausweichen,mit anderen Worten das PHP Script dort zwischenlagernundvon meiner Seite aus ansteuern. Die Tutorials die ich zu dem Thema ausfindig machen machen konnte steuern das PHP script direkt im selbigen Ordner an.

Script tutorial1


on (release) {
if (signal != 2 && MailFrom .indexOf("@") !=-1 && MailFrom .indexOf(".") !=-1 && Subject !="" && Body !="") {
signal=2;
loadVariablesNum("flaform.php", 0, "POST"); }
if (Body == "") {
mc.ausgabe = "Missing Comment !";
}
if (Subject == "") {
mc.ausgabe = "Missing Subject !";
}
if ( MailFrom .indexOf("@") ==-1 || MailFrom .indexOf(".") ==-1) {
mc.ausgabe = "Wrong E-mail";
}
}

Script tutorial 2

function sendForm() {
var error = checkForm(); // Rückgabe der Funktion checkForm speichern
if (error == 0) { // Wenn kein Fehler aufgetreten ist, wird das Formular verschickt
var LV = new LoadVars(); // Wir legen ein LoadVars-Objekt an, um das Senden und Empfangen zu ermöglichen
// und weisen diesem die Werte unserer Eingabefelder zu. Wir "escapen" diese Werte, das heißt wir wandeln sie
// für den Versand in URL-encodierte Zeichenketten um:
LV.msg_lastname = escape(msg_lastname.text);
LV.msg_forename = escape(msg_forename.text);
LV.msg_tel = escape(msg_tel.text);
LV.msg_mail = escape(msg_mail.text);
LV.msg_message = escape(msg_message.text);
// mit der Funktion sendAndLoad senden wir die Daten an unser PHP-Script und empfangen
// gleichzeitig eine Antwort:
LV.sendAndLoad("mailto.php", LV, "POST");
// Wenn eine Antwort empfangen wurde, geben wir eine entsprechende Meldung aus:
LV.onLoad = function() {
display.text = "\n> ";
if (this.answer != undefined) { // Wenn eine gültige Antwort empfangen wurde (Variable "answer") ...
display.text += unescape(this.answer); // geben wir diese aus.
} else { // andernfalls ...
display.text += "Ein unbekannter Fehler ist aufgetreten!"; // geben wir eine Standartmeldung aus
}
// unser Script gibt zusätzlich eine Variable (success) aus, wenn das Senden erfolgreich war:
if (this.success == "true") clearForm(); // wir löschen dann das Formular
}
} else { // Wenn Eingabefehler bemerkt wurden ...
display.text = errorMsg(error); // geben wir die entsprechende Meldung aus.
}
}


In wie weit müsste ich das Scriptverändern?

Danke für Eure Hilfe

surfa
 
Zuletzt bearbeitet:

surfa

Mitglied
Dank Dir für deine schnelle Hilfe.

Hab auf einen fremden Server derphp unterstützt zugriff,mit anderen Worten kann ein php-script dort zwischenlagern. In meinem Flashscript hab ich den Weg bis zum fremdgelagerten php Script verfolgt. Dennoch werden die Datennicht weiter geleitet.

Du hast von einer policy gesprochen. Was kann ich mir darunter vorstellen und wie sieht diese aus. (Ich geh mal davon aus das hierbei eine Problemlösung stecken könnte).

so far

P.S. Weisst Du ab welcher Flashversion eine solche "sperre" verwendet wird?
 

Basileus

Erfahrenes Mitglied
HI,

soweit ich weiß ist die Sperre ab FlashPlayer Version 6 installiert worden.

Du musst dir leider schon die oben geposteten Links reinziehen, weil sich das auf die Kürze gesehen nicht so wirklich hier erklären lässt.
Du musst auf einer gewissen Ebene deines dritten (PHP) Servers ein XML File mit festem Namen und festgelegter Struktur installieren, das die URLs und Domains enthält, die auf Scripte auf diesem Server zugreifen dürfen. Das ist dann die Policy. Wenn du das gemacht hast, kannst du von den entsprechenden Domains aus auf Scripte auf diesem Server zugreifen.
Das ist aber alles ein bisschen kompliziert, deswegen lese die TechNotes, probier es aus, und wenn du scheiterst, frage noch einmal nach, und poste dabei die von dir verwendeten Dateien.
Nur soviel: es funktioniert wirklich, aber ich hatte damit auch einige Probleme bis es geklappt hat, bei manchen Providern stimmen ja die Pfadstrukturen nicht mit den ÚRLs überein, da kann es Probleme geben, usw... nur ran an den Speck...

Grüsse
B
 

umlart

Erfahrenes Mitglied
mal zur erklärung..
domain1 ohne PHP (test.swf):
Code:
     this.loadVariables("http://www.domain2.de/datei.php4");
         this.onData = function() {
                     tester = "ok "+test;
                 }
In dem Movie erstelle ein dyn.Textfeld, Varname: tester.


Das PHP script liegt auf domain2 mit PHP:
PHP:
      <? 
        echo "&test=hallo was geht?&"; 
        ?>
und nun noch folgendes...erstelle eine Datei im serverrootverzeichnis von domain2 (crossdomain.xml)
mit Inhalt:
HTML:
      <?xml version="1.0"?>
     <!DOCTYPE cross-domain-policy
       SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
     <cross-domain-policy>
       <allow-access-from domain="*.domain1.de" />
     </cross-domain-policy>
Und das wars.
 
Zuletzt bearbeitet:

Neue Beiträge