Wie kann ich mit PHP cURL auf Remote-Site anmelden, dann auf dieser Site umleiten

StackOverflow https://stackoverflow.com/questions/3676098

  •  01-10-2019
  •  | 
  •  

Frage

Ich habe dies auf verschiedene Weise gefragt gesehen, aber keine Antwort, dass die Arbeiten finden.

Ich habe eine Seite erstellt, dass Protokolle in eine Remote-.NET-basierten Website PHP / cURL. Funktioniert prima, soweit es geht - ich die Daten wieder aus der eingeloggte in Seite über curl_exec bekommen kann und tun, was mit ihm, aber was ich wirklich Notwendigkeit zu tun ist, den Benutzer zu dieser Seite umleiten . Einfach Umleitung gibt mir eine Seite auf dem entfernten Standort abgemeldet. Ich weiß, dass die Antwort ist das Cookie in immer das ist, wenn cURL Protokolle zurück in, dann in einem zweiten Anruf vorbei. . . irgendwie. I; m sicher, dass jemand muss wird dies zu tun und kann ein funktionierendes Beispiel liefern. Bitte Hilfe - das macht mich verrückt!

Danke,

Mark

War es hilfreich?

Lösung

Kein Wunder, dass Sie keine Antwort, dass Werke finden.
Das ist nicht möglich.

Andere Tipps

Das Problem ist, dass die Anmeldung von Ihrem PHP-Server kommt, nicht von der Endbenutzers IP-Adresse, so dass, wenn Sie den Benutzer umleiten, die Website wahrscheinlich wird sie nicht sehen, wie angemeldet.

Sie setzen Sachen tun können, das Cookie wie vorbei an dem PHP-Server-Login zurück an den Endverbraucher zur Verfügung gestellt, aber wenn die umgeleiteten Website noch etwas gut geschrieben, es wird nicht darauf reinfallen.

Wenn Sie die volle Kontrolle über beide Seiten haben und sie können Each anderen Datenbanken zugreifen, könnten Sie einige Back-End-Code schreiben, so dass der PHP-Server die .net-Website erzählt die eingehenden Benutzer zu erwarten; das könnte funktionieren. Aber Sie würden brauchen eine Back-End-Arbeit in beiden Systemen zu tun.

Wenn Sie nicht Back-End-Zugriff auf die .Net-Website haben, dann ist die einzige Art und Weise kann ich zu sehen, es zu tun wäre, um die PHP-Website als Voll Proxy zu verwenden für die .Net-Website - das heißt, anstatt tut eine Umleitung, zeigt nur die Ausgabe der .net-Website direkt über Ihre PHP. Dadurch werden alle möglichen anderen Probleme haben, mit ihm verbunden though.

Wenn die Site verwenden Cookies Sie könnten cURL verwenden.

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_HEADER, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, "User=$user&passwd=$passwd");
curl_setopt ($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_NOBODY, TRUE);

$header = curl_exec($ch);

if (preg_match("/set-cookie:(.*)\n", $header, $m)) {
  $cookies = preg_replace('/(expires|path|domain)=[^;]*;?/i', '', $m[1]);
  header("Cookies: " . $cookies);
  header("Location: $url");
}

Das sollte funktionieren, aber ich es nicht testen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top