2.2k Aufrufe
Gefragt in Skripte(PHP,ASP,Perl...) von
Hallo Spezialisten,

ich würde mich über Eure Hilfe zu folgendem Problem freuen:

Auf Webserver1 läuft eine Webseite, wo der User Daten in ein Formular (Javascript/Dojo) eingeben kann. Nehmen wir als Beispiel Vorname, Nachname, Strasse, Ort.

Mit dem Absenden des Formulars werden diese Daten an eine PHP-Datei auf Webserver1 geschickt. Diese PHP-Datei soll eine Funktion enthalten, die die Daten an eine weitere PHP-Datei - diesmal auf Webserver2 - übergibt. Diese PHP-Datei speichert dann die Daten in eine DB, die auch auf dem Webserver2 liegt.

Habt ihr eine Idee, wie das zu bewerkstelligen ist? Danke schon im Voraus für eure Hilfe!

5 Antworten

0 Punkte
Beantwortet von macgyver031 Experte (2k Punkte)
Habt ihr eine Idee, wie das zu bewerkstelligen ist? Danke schon im Voraus für eure Hilfe!


Es gibt viele Möglichkeiten:
a) über Sockets
b) über HTTP_POST
c) über DB Port.

Nun zu den verschiedenen Möglichkeiten:
a) Flexibel, braucht gewisse Programmieraufwand.
b) Einfach, ev. unsicher wenn es nicht über https übertragen wird.
c) Einfach, braucht jedoch den Systemadmin um die Ports freizuschalten.

Zum b) schau dir serialize an.
0 Punkte
Beantwortet von
Hallo MacGyver,

dann werde ich es mal mit Variante b) testen und - wenn es dann funktioniert - auf die https-Übertragung umstellen. Eine Frage noch dazu: die Datenmenge, die per HTTP_POST übertragen werden kann, ist doch begrenzt, oder?

Danke und viele Grüße
eltolito
0 Punkte
Beantwortet von supermax Experte (4.8k Punkte)
Wenn beide Seiten mit reinem PHP arbeiten, würde ich einfach die zu übertragenden Daten mittels serialize() in einen String umwandeln und diesen dann per HTTP/HTTPs POST (z.B. mittels cURL) an den zweiten Server schicken.

Wenn die übertragung über eine öffentliche IP erfolgt, würde ich die Nutzdaten zusätzlich noch mit einem Hash (SHA1 oder besser), um zu verhindern, daß Dritte falsche Daten an webserver2 übermitteln.

Wenn die Datenmenge sehr groß und/oder die Verbindung zwischen den beiden Servern eher langsam ist, kann man eventuell auch zusätzlich die Nutzdaten komprimieren.
0 Punkte
Beantwortet von macgyver031 Experte (2k Punkte)
ist doch begrenzt, oder?


Ja, das legt der Systemadministrator fest. Wenn es ein Apache2 Server ist, so ist 8MB die Standard-Limite.
0 Punkte
Beantwortet von ennok Experte (1.2k Punkte)
Selbst wenn sie begrenzt ist, hindert das einen ja nicht daran, das so zu programmieren, dass jeweils Teile von beliebiger Größe nacheinander übertragen werden.

Statt einer großen 16MB-Datei schickt man einfach 32 Dateifragmente á 512kByte.
...