Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Mit PHP/Form auf fremdes Server-Skript zugreifen

Empfohlene Antworten

Hallo!

Ich habe folgendes Problem, Kunde hat 4 Server und denen seperate Homepages liegen.

Server A ist z.B. die deutsche Version, Server B englisch, Server C französisch...

Alle sollen jedoch auf eine Mailingliste (welche auf Server A liegt), bzw. ein Verwaltungsskript zugreifen und über dieses verfügen.

Das klappt derzeit auch recht einfach mit einem <form ... action="ServerA/list/"...> So verweise ich von allen Servern auf Server A.

Nun sind die Seiten jedoch alle mehrsprachig, darum übergebe ich bei dem o.g. Formaufruf der auf jeder Sprachversion vorkommt immer ein "language=de/en"... alos ein Kürzel für die jeweilige Sprache.

Im Verarbeitungsskript frage ich dann ab

if($language=="en"){

$Message="your adress ( $EMail ) already exists.";

} }

Somit soll gewährleistet werden das die Ausgabe in der jeweiligen Sprache, direkt vom Sprachserver erfolgt.

Nun werden im Verarbeitungsskirpt auf Server A jedoch Fehler abgefangen und sofern vorhanden an das Message-Skript des jeweiligen Servers weitergeleitet. Als Beispiel:

if($language=="en") include'http://Server B/message.php';"

Leider zeigt das inkudiert Formular jedoch keinerlei Fehlermeldungen an.

Was mache ich falsch?

Ist die Übergabe so überhaupt möglich?

Die Variable Message ist gefüllt und das klappt auch die auszugeben, nicht jedoch in dem eigentlichem Message.php Formular.

Kann mir jemand weiterhelfen?

Ich hoffe, es ist nicht zu wirr erklärt, es ist schon spät.. ;-)

Besten Dank und Gruß!

if($language=="en") include'http://Server B/message.php';"

Auwei! Wenn das wirklich funktionieren würde, dann wäre das ja eine Katastrophe. Dann wäre wohl keine PHP-Anwendung vor böswilligen Angriffen mehr sicher.

Liegen die Webauftritte auf dem gleichen physikalischen Server? Falls ja, dann kannst du mittels die Datei mittels include einbinden, sofern die entsprechenden Leserechte gesetzt sind.

Wenn nicht, dann must du dir die Datei inrgendwie interaktiv besorgen. Denn mit include hast du nur Zugriff auf das interne Dateisystem.

Schade, aber sowas habe ich mir schon gedacht.

Leider hat der Kunde vier verschiedene Server und will das auch so beibehalten da der Provider ein guter Freund von ihm ist... :hells:

Naja, ich muss mal schauen wie ich da drumherum basteln kann...

Auwei! Wenn das wirklich funktionieren würde, dann wäre das ja eine Katastrophe. Dann wäre wohl keine PHP-Anwendung vor böswilligen Angriffen mehr sicher.

...

Denn mit include hast du nur Zugriff auf das interne Dateisystem.

Wenn "URL fopen wrappers" in PHP aktiviert sind (in der Standardkonfiguration ist das der Fall) können Sie als Pfad der einzubindenden Datei auch eine URL (via HTTP oder anderen unterstützen Wrappern (eine Liste der unterstützen Protokolle finden Sie unter Anhang L) statt einer lokalen Pfadangabe angeben.

http://de2.php.net/include/

Es gibt aber auch die Möglichkeit, das include auf bestimmte Ordner zu beschränken. Du solltest mal in der php.ini nachsehen ob das der Fall ist. Ansonsten sollte es kein Problem sein.

Leider zeigt das inkudiert Formular jedoch keinerlei Fehlermeldungen an.

Was mache ich falsch?

Ist die Übergabe so überhaupt möglich?

Stimmt der Variablenname im includierten Formular? Bzw. wird das Formular aus der externen Datei überhaupt angezeigt? Ansich sollte das so gehen.

Mit den Url-Wrappers kann man Dateien auf anderen Servern aufrufen und diese auswerten. Allerdings ist es besonders bei PHP problematisch, da dieses ja schon von dem anderen Server geparst wird.

Du könntest allerdings eine Textdatei zurückgeben, die den Inhalt bestimmt. In der Datei kannst du für die dyn. Inhalt ja Variablen verwenden und diese dann ersetzen.

Bsp:


Hello {name},


this the {num} Newsletter this year,...

Danach lassen sich die {xxx} durch die entsprechenden Variablen ersetzen.

Stimmt der Variablenname im includierten Formular? Bzw. wird das Formular aus der externen Datei überhaupt angezeigt? Ansich sollte das so gehen.

Der Variablenname stimmt natürlich, lediglich der Inhalt dieser wird wohl nicht an das inkludierte Formular übergeben.

Das Formular wird angezeigt, nur nicht die Nachricht, die übergeben werden soll. vor dem include-Befehl erscheint die Ausgabe, nur wenn ich ein Echo in dem inkludierten Formular mache, war's das mit der Variable....

Wie Enrico sagte liegt es wohl daran, dass die PHP-Datei schon durch den Parser geht, bevor sie bei dir ankommt.

D.h. du kannst aber dann auch PArameter mitgeben:

include ("http://server/Datei.php?msg=Fehlermeldung");

Falls der Zielserver die Zieldatei als PHP-Code interpretiert, können Sie an die einzubindende Datei Variablen in einem Request-String übergeben, genauso wie bei HTTP GET.

Link siehe oben

Da kommen wir schon zum nächsten Problem, die Fehlermeldung wird in einer Variablen gespeichert. Die Übergabe müsste also wie folgt geschehen (und das klappt leider auch nicht):

include ("http://server/Datei.php?msg=$Fehlermeldung");

wieso nicht einfach ein netzlaufwerk o.ä. mappen und dann per laufwerksbuchstaben "lokal" darauf zugreifen.

Bei linu halt nen pfad mounten

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.