Wie POST-Daten für Anmeldung übergeben?

b.legt210

Mitglied
Thread Starter
Dabei seit
01.03.2006
Beiträge
81
Reaktionspunkte
4
Szenario:
Es gibt eine Domain A in welcher Benutzer ein Konto haben. Einige dieser Benutzer haben auch auf Domain B ein Konto. Auf Domain B wird die Anmeldung über ein POST-Formular geregelt.

Frage:
Wie kann ich von Domain A aus die Daten an Domain B übergeben, ohne dabei mit einem sichtbaren Fenster zu arbeiten, also etwa so:
Domain A beinhaltet einen Link auf eine Seite "extern_login.php" in Domain A (so bekomme ich ein neues Fenster). Hinter diesem Link werden nun die Benutzer-Daten abgeholt und sollen an Domain B weiter gegeben werden.

Bisherige Versuche:
Irgendwie muss das ganze über eine header()-Weiterleitung geschehen. header("Location: Domain B") übergibt aber keine POST-Daten. Mit header("POST ..") werden zwar POST-Daten übergeben, der "Fenster-Focus" (oder die Basis dieser Seite, oder wie auch immer) ist aber nachwievor "Domain A/extern_login.php".
 
Warum so kompliziert. Regel das doch über die Datenbank. Der Status LoggedIn/Out wird doch sicherlich in einer DB festgehalten. Bei Zugriff auf Domain B schaut Domain B einfach in der DB für Domain A nach, ob der User eingeloggt ist.
 
Wenn Du es ohne Datenbank machen willst:
Warum übergibst Du die Daten nicht wie selbst vorgeschlagen über eine header ()-Seite, aber als REQUEST? Auf Domain B dann einfach noch als zusätzliche Variablen-Input-Möglichkeit integrieren.
 
Manjo schrieb:
Warum so kompliziert. Regel das doch über die Datenbank. Der Status LoggedIn/Out wird doch sicherlich in einer DB festgehalten. Bei Zugriff auf Domain B schaut Domain B einfach in der DB für Domain A nach, ob der User eingeloggt ist.

Hallo,

Ich würde einer produktiven Datenbank, hier dann wohl MySql, keinen anderen User geben als "@localhost". Das wäre mir dann viel zu riskant.
 
Funktioniert eine session auch über mehrere Domains? Wenn ja, dann wäre das sich mein Favorit.
 
Zunächst mal Danke für die Antworten. Näheres im Einzelnen:

1. direkter DB-Zugriff von B nach A. Sowas würde ich erstens grundsätzlich vermeiden und zweitens ist das nicht möglich, da Domain B und Domain A nicht auf dem selben Server liegen.

2. Allgemein: habe ich keinen Einfluss auf Domain B und die dortige Anmelde-Prozedur. Ich habe lediglich Einfluss auf die "Dienste" in Domain A.

3. Daten per REQUEST übergeben entspricht ja Daten per POST übergeben. Wobei dann hier das schon beschriebene Phänomen bleibt, das der "Focus" dieser Seite nach wie vor bei Domain A liegt und nicht bei Domain B.

4. SESSIONs gelten niemals über mehrere Domains. Außerdem müssten ja auch hier Eingriffe auf Domain B vorgenommen werden. Da hab ich aber keinen Zugriff.

Nochmal als Erklärung:
Ich will ein POST-Formular mit Daten bestücken, an ein Adresse schicken und anschließend die Antwort des Formular-Empfängers in der Seite haben.

Bsp: es sollen meine Anmelde-Daten an https://www.macuser.de/forum/login.php geschickt werden. Als Ergebniss-Fenster möchte ich dann eben das entsprechende MacUser-Fenster sehen, wobei die Adresse (oder der Focus des Fensters) bei https://www.macuser.de/forum/login.php liegen soll.
Dabei will ich eben vermeiden zum versenden ein sichtbares Fenster mit einem Formular zu verwenden. In diesem Formular würden die Anmelde-Daten ja als "Klar-Text" drin stehen (auch in hidden Feldern).
 
Zuletzt bearbeitet von einem Moderator:
b.legt210 schrieb:
...und zweitens ist das nicht möglich, da Domain B und Domain A nicht auf dem selben Server liegen....

Nur kurz eingeworfen — natürlich kann ich von Domain A auf die
Datenbank von Domain B zugreifen. (Dass das in diesem Fall sicher nicht
empfehlenswert, sei mal dabei außenvorgelassen.)
 
@falkgottschalk + scope:
So riskant ist das nicht. Erstens unterstützt MySQL SSL, zweitens kann man den Zugang ja nur für den zweiten Rechner freigeben, drittens (für Freaks) kann man das ganze auch noch über SSH tunneln.

Zu 3.:
Warum entspricht POST REQUEST? REQUEST-Daten werde in der Adreßzeile übergeben, welcher "Fokus" liegt dann noch bei Domain A? Vielleicht geht es aber auch nicht, weil B, auf die Du keinen Zugriff hast, keine POST-Daten verarbeitet.
 
Um es nochmal zu erwähnen: Hinweise zu direkten DB-Verbindungen nutzen mir nichts.

@jkm:
REQUEST beinhaltet die Summe aller Anfragen, also POST- GET- und noch ein paar weitere Daten. Die Anmeldung auf Domain B ist definitiv per POST geregelt, also muss ich auch Daten per POST übergeben und nicht per GET, was der Übergabe in der Adress-Zeile ala ?param1=wert1&param2=wert2 entspricht.
 
Wenn Du es über die Header-Geschichte nicht schaffst, bastel Dir ein iframe, in das Du per Javascript die entsprechenden Elemente packst und mit Inhalt füllst es anschließend abschickst und löschst. Achte dabei darauf, dass Du die Elemente, die Du für das iframe erzeugst, auch im iframe anlegst, sonst gibts Ärger mit dem IE, der das Einfügen von Elementen, die im Hauptfenster erzeugt wurden, in ein iframe verbietet.
Das iframe kannst Du per css-style display:none; unsichtbar machen.
 
Zurück
Oben Unten