Antworten
Zitat:
Der Server will per javascript mindestens 10 weitere Dateien von sich laden...
... was ja mit einem normalen (echten) Formular-Submit auch immer problemlos wäre.
Nein, nicht jeder hat JS aktiviert.
Zitat:
Wenn man das Submit nun mittels sendToHost() simuliert, ist der Browser natürlich
am falschen Ort und kann mit der Antwort des Servers nichts anfangen.
Ich dachte PHP soll das übernehmen, da benutzt du den Browser, i.d.R nur um das Script zu starten, den Rest macht dein script.
Was genau machen denn diese JavaScripts ?
2.
Guten Morgen...
Vielen Dank für die Antwort... und die Fragen!
Ja, ich habe JavaScript auch ausgeschaltet, aber der Server schickt trotzdem solche Seiten.
Die Anwendung ist folgende:
Freunde von einem Hilfswerk möchten, dass man online spenden kann: Projekt auswählen,
Betrag definieren und ab geht's zur Bank. Ich habe da spontan zugesagt und gedacht,
dass das mit PHP an einem Nachittag gelöst sein müsste...
Zwischen dem Submit des Spenders und der Datenübergabe an die Bank muss ich noch
Hash-Werte berechnen und Konto-Informationen an den Bank-Server mitgeben.
Mein Spenden-Formular ist in der Datei
www.meinserver.de/ypform.php und Submit ruft dann
www.meinserver.de/ypsubmit.phpauf, weshalb der Browser auch auf dieser URL ist. Simuliere ich nun per LowLevel den
POST-Versand der Daten, bleibt der Browser immer noch auf der Seite
www.meinserver.de/ypsubmit.php
womit die JavaScripts der Bank mit relativen Pfaden nicht mehr funktionieren.
Würde ich ein Submit auf
https://meinebank.de/... machen, wäre der Browser natürlich
auf der richtigen Adresse und die relativen Pfade in den Scripts funktionieren wieder...
Zitat:
Was genau machen denn diese JavaScripts ?
Da die vom Bankserver kommen, weiss ich das nicht genau (und sie können auch ändern),
so weit ich aber sehe, werden irgendwelche Dinge mit der Verschlüsselung aktiviert / konfi-
guriert und die Parameter und die Herkunft geprüft.
Eigentlich ist das Problem einfacher als die Beschreibung vermutlich tönt...
Da JavaScript sowieso aktiv sein muss, könnte ich (igitt...) auch JavaScript
einsetzen, das Formular ein zweites mal mit allen Daten anzeigen und Submit
auf die richtige Seite aofort auslösen. Aber eine saubere PHP-Lösung wäre da doch
viel eleganter...
Nochmals vielen Dank,
thomas
3.
1. Die meisten Banken mögen es garnicht, wenn man derren Formulare fernsteuert!!!
2. Das Hauptproblem scheinen mir nicht die JS zu sein, sondern Cookies!!
3. Die meisten Banken bieten fertige Schnittstellen, um solche sächelchen abhandeln zu können(Soap o.ä.)
4. evtl. reicht dir ja schon curl....
4.
Vielen Dank, combie, für die Antwort!
Zitat:
1. Die meisten Banken mögen es garnicht, wenn man derren Formulare fernsteuert!!!
3. Die meisten Banken bieten fertige Schnittstellen, um solche sächelchen abhandeln zu können(Soap o.ä.)
Ich benütze (natürlich, will ja keinen Ärger und möglichst wenig Aufand) bereits das von der Bank offiziell definierte Interface. Sie mögen es, wenn ich das so mache...
Zitat:
2. Das Hauptproblem scheinen mir nicht die JS zu sein, sondern Cookies!!
Leider nein: Cookies können ausgeschaltet werden und ein aktiviertes JS ist per Interface-Beschreibung Pflicht.
Zudem ist nicht von der Hand zu weisen, dass
Code: In Zwischenablage kopieren (nur IE)
mit einem relativen Pfad auf auf den Bank-Server zugreift. Ist also doch das Problem.
Zitat:
4. evtl. reicht dir ja schon curl....
Curl habe ich versucht, jedoch macht es (soviel ich verstanden habe) auch nicht mehr, als die POST-Daten an den Server zu senden - was im Test mit Curl wie auch mit Send2Host problemlos klappte. Die Browser-URL bleibt aber bei Curl auf meinem PHP-Script, so dass das JS wieder nicht läuft.
Ich hoffte, dass es irgend eine <Head>, <Meta>, ... Anweisung gäbe, die den Browser auf die Zielseite des Bank-Servers leitet und (eben) die Post-Daten wie bei einem echten Submit aus einem Formular schickt.
Noch ein schönes Wochenende!,
Thomas
5.
Zitat:
mit einem relativen Pfad auf auf den Bank-Server zugreift
Dann würd ich diesen Pfad halt absolut defnieren oder das JS auf deinen Server kopieren...
6.
Und wenn du die relativen Pfade durch absolute ersetzt ?
7.
Wenn ich Dich recht verstehe, sendest Du die Daten via send2host() an den Bankserver (an irgendeine Adresse wo ein normales Formular auszufüllen wäre), liest die zurückgesendeten HTML-Daten aus und sendest sie zurück zum Client - der sieht nun die Antwort des Bankservers, der Browser hat aber die "falsche" URL (die Deines Servers).
Wie wäre es, wenn Du stattdessen NICHT send2host benutzt, sondern direkt dem Anwender eine HTML-Seite zuschickst, die quasi eine grobe Kopie es Bankformulars enthält, in der <form action="...." ...> steht als action die volle URL die Du sonst via send2host() aufrufst, das Formular enthält lauter HIDDEN Felder mit den richtigen value-Klauseln und den notwenidgen Werten und die Methode ist natürlich POST. Und am Ende des HTML-Formulars baust Du einen Javascript "document.form.submit()" ein, dadurch wird das Formular echt vom Browser versendet (so wie Du es brauchst) und anschließend bekommt der Anwender die Daten echt vom Bankrechner zurück und nicht um die Ecke - das sollte eigentlich gehen.
Es setzt das Vorhandensein von JavaScript voraus - aber das wird ja sowieso vorausgesetzt.
8.
Herzlichen Dank für all Eure Antworten!,
ich bin ja schön froh, ist so schlechtes Wetter... sonst wären vermutlich alle in der Sonne.
Ich lese meine Texte immer mindestens 3x durch und trotzdem schreibe ich noch unklar:
Zitat:
Dann würd ich diesen Pfad halt absolut defnieren oder das JS auf deinen Server kopieren...
Das JS kommt als Antwort vom Bank-Server und das möchte ich nicht kopieren oder on-the-fly
auf absolute Pfade anpassen. Da ist es nur eine Frage der Zeit, bis die irgend was ändern...
Rana, vielen Dank für diesen Lösungsvorschlag!, diese Nacht studierte ich auch genau da rum, so
dass ich diesen Weg nun gehen werde (muss). Eigentlich wollte ich zumindest bei mir JS
vermeiden, aber Du hast recht: wenn es sowieso spätestens bei der Bank vorausgesetzt ist,
kann ich es auch benützen. So lerne ich daraus, dass ich pragmatischer werden sollte.
Apropos: The Pragmatic Programmer ist ein geniales Buch, das ich auch
wieder mal lesen sollte...
Nochmals vielen Dank an Alle!,
thomas
9.
Zitat:
dass ich pragmatischer werden sollte
Ja?
Dann pack das Ganz in ein IFrame, und Ruhe ist!
10.
Guten Abend!
Vielen Dank für die Antwort und den Tipp!:
Zitat:
Dann pack das Ganz in ein IFrame, und Ruhe ist!
Die Idee schien mir im ersten Augenblick bestechend, aber nach dem Studium
von iFrame glaube ich nicht, dass darin eine Lösung wäre:
Die Daten müssen ja vom Client aus per POST an den Server geschickt werden,
um auch vom Client wieder angezeigt & verarbeitet (JS) zu werden. Das kann ich
in einem iFrame automatisch jedoch auch nur mit JavaScript tun - dann brauche
ich aber das iFrame nicht mehr - es verhält sich ja wie ein Browser im Browser.
Das Grundproblem liegt ja darin, dass das Senden der Daten nicht vom Server,
sondern vom Client aus gemacht werden muss, damit der Client die richtige URL
hat und so die Antwort richtig verarbeiten kann. Ein Send2Server und auch Curl
laufen immer auf dem Server, so dass die Antwort auch dorthin geht. Irgendwie
müsste nun die Antwort zum iFrame geschickt werden, wobei die URL des iFrame's
bereits auf den Server zeigen sollte. Mein iFrame-Dok hat keine solche Möglichkeit
aufgelistet.
Nun hoffe ich, etwas übersehen zu haben...
11.
Ein iframe oder Frame-einfach bietet sich nur an, weil damit deine Navi erhalten bleibt..
Im iframe schreibst du doch src="http://meinebank.de/keineAhnungWas.html"
Die Anfrage geht dann vom Client zum BankServer
eben so landet die Antwort des BankServers wieder im iframe
Wolltest du das nicht so?
--------------
Pauschal, wage ich zu behaupten, daß du die JavaScripte NICHT auf dem Server zum laufen bekommst!!
Also sind dir alle anderen Wege sowieso verbaut!
*edit*
Ich sehe schon, du willst da noch eigene Daten eintragen Und das Formular teilweise verbergen...
:( das wird wohl nix :(
Kannst du einen Link auf die Bankseite geben....?
12.
Guten Tag, combie,
Vielen Dank für Deine Antwort und's Mitdenken!
Ja, es stimmt: das Hauptproblem sind die versteckten Zusatzdaten, die erst nach
dem Submit mit Inhalt gefüllt werden können / dürfen: hauptsächlich müssen aus
den Benutzer-Daten Prüfsummen berechnet und mitgeschickt werden, damit sicher-
gestellt werden kann, dass zwischen dem Spendenformular und dem Bankserver
niemand etwas geändert hat.
Nun bin ich also am HTML-JS-PHP-CSS-codieren, was ich und mein Editor nicht
grad hübsch finden...
Mit einem lieben Gruss,
Thomas