Per PHP-Skript ein POST an ein externes Loginformular senden und Cookies setzen

  • PHP

Es gibt 33 Antworten in diesem Thema. Der letzte Beitrag () ist von Marcus Gräfe.

    Per PHP-Skript ein POST an ein externes Loginformular senden und Cookies setzen

    Ich möchte mittels PHP auf Server A einen Login für Server B programmieren. Bisher habe ich einfach eine HTML-Seite mit einem iframe, in dem ich die externe Seite aufrufe und das Formular per JavaScript fülle und abschicke. Das hat aber mehrere Nachteile.

    Daher nun der Versuch mit PHP, der bisher aber kläglich gescheitert ist.

    Das Formular hat die Felder user, password, authmethod und url. Den korrekten Inhalt für alle vier Felder kenne ich. Zudem kenne ich die Adresse, wohin ich den Post-Befehl schicken muss ("https://...login_post.yaws").

    Nun habe ich natürlich nach "php send post" und dergleichen gesucht und bestimmt zehn verschiedene Möglichkeiten gefunden. Leider klappt keine. Bei den wenigsten gibt es Fehlermeldungen, es klappt einfach nur nicht. Manchmal gibt's auch scheinbar eine Endlossschleife. Möglicherweise ist das Problem größtenteils das, dass das Loginformular nicht das nötige Cookie setzt.

    Zuletzt habe ich den Code von forums.devshed.com/showpost.php?p=504183&postcount=5 getestet, auch den ohne Erfolg.

    Hat schonmal jemand sowas realisiert und kann mir einen Tipp geben, was mein Problem sein kann?
    Besucht auch mein anderes Forum:
    Das Amateurfilm-Forum
    Nicht direkt, jedoch solltest du mal nach "curl" suchen, ist wesentlich angenehmer mit zu arbeiten (m.M.n.).
    Hab damit mal vor langer Zeit ein Proxy für AJAX-Requests (SOAP) geschrieben (wg. CrossDomain etc.)

    Der Code ist nicht sonderlich schön könnte dir aber ein Anhaltspunkt sein im Umgang mit curl
    Spoiler anzeigen

    PHP-Quellcode

    1. <?php
    2. header('Content-type: text/plain');
    3. /** var pool ****************************************************************************/
    4. $url = $_GET['url'];
    5. $userAgent = $_SERVER["HTTP_USER_AGENT"];
    6. $headers = apache_request_headers();
    7. $header = array();
    8. $content = '';
    9. $cookie = array();
    10. $result = '';
    11. /** var pool ****************************************************************************/
    12. if(!$url)
    13. {
    14. $result = 'ERROR: url not specified';
    15. }
    16. else
    17. {
    18. if(preg_match('/(domain\.de|domain2\.de)/i', $url))
    19. {
    20. /** prepare data ************************************************************************/
    21. foreach($_COOKIE as $key => $value)
    22. {
    23. $cookie[] = $key.'='.$value;
    24. }
    25. $cookie = implode('; ', $cookie);
    26. foreach($_POST as $key => $value) {
    27. $content .= '<soapenv:Envelope xmlns:soapenv='.$value;
    28. }
    29. foreach ($headers as $key => $value)
    30. {
    31. if(preg_match('/(Content-Type|Content-Language|SOAPAction|Authorization)/i', $key))
    32. {
    33. $header[] = $key.': '.$value;
    34. }
    35. }
    36. /** prepare data ************************************************************************/
    37. /** build request ***********************************************************************/
    38. $ch = curl_init();
    39. curl_setopt($ch, CURLOPT_URL, $url);
    40. curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
    41. curl_setopt($ch, CURLOPT_HEADER, true);
    42. curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
    43. curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    44. curl_setopt($ch, CURLOPT_USERAGENT, $userAgent);
    45. curl_setopt($ch, CURLOPT_COOKIE, $cookie);
    46. curl_setopt($ch, CURLOPT_POST, true);
    47. curl_setopt($ch, CURLOPT_POSTFIELDS, $content);
    48. curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    49. $output = curl_exec($ch);
    50. $info = curl_getinfo($ch);
    51. curl_close($ch);
    52. /** build request ***********************************************************************/
    53. list($rHeader, $rContent) = preg_split('/([\r\n][\r\n])\\1/', $output, 2);
    54. $result = $rContent;
    55. }
    56. else
    57. {
    58. $result = 'ERROR: invalid url';
    59. }
    60. echo $result;
    61. }
    62. ?>
    Hy, gibt es in php nicht die möglichkeit einen Request an einen server zu senden und die Antwort auszulesen ? wäre denke ich das einfachste php.net/manual/de/httprequest.send.php
    Meine Projekte Genesis Game Engine | GFX | smartli.me - Der smarte URL shortener

    Danke erstmal.

    "curl" ist eine Alternative, für die ich auch schon passende Quellcodes gefunden habe. Leider ist auf dem Server derzeit kein curl installiert. Ich weiß morgen, ob eine Installation möglich ist.

    Was ist denn erforderlich, um "HttpRequest" zu verwenden? Zum Standardumfang von PHP5 scheint das nicht zu gehören. Ich konnte auf der PHP-Website dazu keine Info finden.
    Besucht auch mein anderes Forum:
    Das Amateurfilm-Forum
    Nun ich habe damit selbst in php noch nichts gemacht, aber in VB. Du sendest einen Request zum Server mit den Login Daten, das Script auf dem Anderen Server Verarbeitet diese Daten und gibt dir eine meldung zurück.

    PHP-Quellcode

    1. <?php
    2. $r = new HttpRequest('http://example.com/form.php', HttpRequest::METH_POST);
    3. // Anscheinend die Optionen in einem Array
    4. $r->setOptions(array('cookies' => array('lang' => 'de')));
    5. // Da müssten die Login Daten rein User wäre dann im Entfangs Script $_POST['user']
    6. $r->addPostFields(array('user' => 'mike', 'pass' => 's3c|r3t'));
    7. // Das ist denke ich für Anhänge
    8. $r->addPostFile('image', 'profile.jpg', 'image/jpeg');
    9. try {
    10. // Senden der Daten und die Server Nachricht Ausgeben
    11. echo $r->send()->getBody();
    12. } catch (HttpException $ex) {
    13. echo $ex;
    14. }
    15. ?>


    Nun hat es mich aber auch gepackt. Ich versuche das mal :rolleyes:
    Meine Projekte Genesis Game Engine | GFX | smartli.me - Der smarte URL shortener

    Dazu wird die HTTP-Extension benötigt.
    „Was daraus gefolgert werden kann ist, dass jeder intelligentere User sein Geld lieber für Bier ausgibt, um einen schönen Rausch zu haben, und nicht dieses Ranzprodukt.“

    -Auszug aus einer Unterhaltung über das iPhone und dessen Vermarktung.
    Exakt den Codeausschnitt habe ich auch gefunden (wenn auch auf einer anderen Seite). Allerdings klappte es damit nicht, vermutlich wegen der Cookies.
    Besucht auch mein anderes Forum:
    Das Amateurfilm-Forum
    Wir haben heute curl installiert (nachdem wir allerdings erstmal den Server auf den neuesten Stand bringen mussten) und nun habe ich folgenden Code zusammengesucht, der aber nicht das tut, was er soll (nämlich sich korrekt einloggen). Die URL ist natürlich nur eine Beispiel-URL!

    PHP-Quellcode

    1. <?php
    2. $user = 'x'; // Username
    3. $password = 'y'; // Passwort
    4. // User-Agent des Skripts setzen
    5. ini_set("user_agent", 'xyz');
    6. $ziel = 'https://example.com/index.htm';
    7. // Zunächst prüfen, ob bereits eingeloggt:
    8. $ch = curl_init();
    9. curl_setopt($ch, CURLOPT_URL, $ziel);
    10. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    11. $check = curl_exec($ch);
    12. if (strpos($check, 'not logged in') > 0) {
    13. // Nicht eingeloggt => einloggen:
    14. // Quelle ab hier: http://www.warriorforum.com/programming-talk/105025-remote-form-submission-via-php-curl.html
    15. $user_agent = 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1) Gecko/20061010 Firefox/2.0';
    16. $headers = array (
    17. 'HTTP_ACCEPT' => 'application/x-shockwave-flash,text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5',
    18. 'HTTP_ACCEPT_LANGUAGE' => 'en-us,en;q=0.5',
    19. 'HTTP_ACCEPT_CHARSET' => 'ISO-8859-1,utf-8;q=0.7,*;q=0.7',
    20. 'HTTP_KEEP_ALIVE' => '300',
    21. 'HTTP_CONNECTION' => 'keep-alive',
    22. );
    23. function read_header($ch, $string)
    24. {
    25. global $location; #keep track of location/redirects
    26. global $cookiearr; #store cookies here
    27. global $ch;
    28. # ^overrides the function param $ch this is okay because
    29. # we need to update the global $ch with new cookies
    30. $length = strlen($string);
    31. if(!strncmp($string, "Location:", 9)) #keep track of last redirect
    32. { $location = trim(substr($string, 9, -1)); }
    33. if(!strncmp($string, "Set-Cookie:", 11)) #get the cookie
    34. {
    35. $cookiestr = trim(substr($string, 11, -1));
    36. $cookie = explode(';', $cookiestr);
    37. $cookie = explode('=', $cookie[0]);
    38. $cookiename = trim(array_shift($cookie));
    39. $cookiearr[$cookiename] = trim(implode('=', $cookie));
    40. }
    41. $cookie = "";
    42. if(trim($string) == "") #execute only at end of header
    43. {
    44. foreach ($cookiearr as $key=>$value) { $cookie .= "$key=$value; "; }
    45. curl_setopt($ch, CURLOPT_COOKIE, $cookie);
    46. }
    47. return $length;
    48. }
    49. $ch = curl_init();
    50. curl_setopt($ch, CURLOPT_HEADERFUNCTION, 'read_header'); # take their cookie and love it!
    51. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    52. curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
    53. curl_setopt($ch, CURLOPT_AUTOREFERER, 1);
    54. curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    55. curl_setopt($ch, CURLOPT_USERAGENT, $user_agent);
    56. curl_setopt($ch, CURLOPT_REFERER, $ziel);
    57. curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
    58. curl_setopt($ch, CURLOPT_URL, $ziel);
    59. curl_setopt($ch, CURLOPT_POST, 1);
    60. curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query(array('user' => $user, 'password' => $password, 'authmethod' => 'default', 'url' => '')));
    61. $string = curl_exec($ch);
    62. }
    63. header("Location: $ziel");
    64. ?>

    Die Funktion "read_header" gibt jetzt "HTTP/1.1 200 OK" zurück. Eigentlich hätte ich da noch ein Cookie erwartet.

    Die beiden letzten "curl_setopt"-Befehle ("CURLOPT_POST" und "CURLOPT_POSTFIELDS") habe ich selbst eingefügt, weil ich davon ausging, dass die auch nötig sind.

    Mein Problem ist, dass ich nicht weiß, wo ich ansetzen soll, also wo der Fehler sein kann. Es kommt immerhin keine Meldung oder dergleichen, der Login funktioniert einfach nur nicht. Oder anders ausgedrückt: Nach Ausführung meines Skripts ist man nicht eingeloggt. Die Weiterleitung ganz unten ruft wieder die URL auf, die, sofern man eingeloggt ist, normalerweise nicht das Login-Formular zeigt. In meinem Fall aber doch.
    Besucht auch mein anderes Forum:
    Das Amateurfilm-Forum
    Hm...
    persönlich habe ich (vor langer Zeit) mal eine Funktion von Drupal modifiziert und verwendet.
    Habe ich leider gerade nicht griffbereit, aber sollte nicht so schwer anzupassen sein:
    api.drupal.org/api/drupal/incl…ion/drupal_http_request/7

    Alternative wäre github.com/kriswallsmith/Buzz evtl. noch eine gute Option. Das kann man entweder mit cURL oder der PHP-Funktion file_get_contents verwenden. Bei letzterem bitte beachten, dass du in der PHP-INI allow_url_fopen enabled haben musst. Auf jeden Fall brauchst du dich dann nicht direkt mit den Optionen von cURL rumschlagen...
    Gruß

    Edit: Grad noch mal deinen letzten Quellcode angeschaut... was willst du da genau machen? Zuerst rufst du die Seite auf, übergibst aber keine Parameter. Dann kommt ein sehr frickliges If-Konstrukt wo du noch eine Funktion definiert. Und machst dann noch mal einen Request mit Login-Daten. Anschließend leitest du auf die Seite, auf der man sich mit dem Script einloggt, um.

    Hast du vor, dass dich der Server einloggt, der Browser das Cookie setzt und dich auf die eigentliche Seite umleitet, so dass du dann auf der anderen Seite unter der erstellten Session arbeiten kannst? Das wäre AFAIK nicht möglich.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „3daycliff“ ()

    Möchtest du den Client, also den Seitenaufrufer von Seite A auf Server B einloggen?
    Wenn ja, dann musst du auf folgendes achten:

    Das wird so nicht funktionieren, da der Request direkt von Server A->B geht. Damit der Client auf Server B allerdings eingeloggt ist, muss der Request direkt vom Client an B gehen.
    Letzteres wäre das, was du mit dem IFrame vorher gemacht hast.

    Du kannst mit Server A auch keine Cookies für Server B setzen. Sowas verbieten so ziemlich alle Cross-Origin-Policys. Wenn sowas gehen sollte, müsste Server B schon ausdrücklich zustimmen, dass das erlaubt ist (meistens via HTTP-Response-Headerfeld). Ich glaube aber nicht, dass das gehen wird, kann aber durchaus sein.

    Wenn du eine Anfrage von Client->Server B machen willst, brauchst du dazu auch keinen IFrame. Das geht mit ("vanilla") JavaScript oder auch mit JQuery. Vorausgesetzt der Server B erlaubt dies mit einen Access-Control-Allow-Origin-Headerfeld. Siehe hier:
    stackoverflow.com/q/5251689/785210

    Die JQuery-Zeile würde in etwa so aussehen:
    Spoiler anzeigen

    JavaScript-Quellcode

    1. var username = "x";
    2. var password = "y";
    3. $.ajax({
    4. url: "http://somesite.com/someplace/login.php",
    5. type: "POST",
    6. dataType: "text",
    7. data: {
    8. user: username,
    9. password: password,
    10. authmethod: "default",
    11. url: ""
    12. },
    13. success: function( msg ) {
    14. alert("Jo!");
    15. window.location = "http://somesite.com/someplace";
    16. },
    17. });

    Das kannst du nachschauen, indem du kurz vor dem Login bei deiner alten Methode mit den F12-Tools die Webrequests überwachst. Dort kannst du dir dann u. A. die Response/Request-Header der Anfrage anschauen.
    Von meinem iPhone gesendet

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „nikeee13“ ()

    3daycliff schrieb:

    Zuerst rufst du die Seite auf, übergibst aber keine Parameter

    Steht eigentlich im Kommentar: Ich rufe die Seite auf, um zu prüfen, ob man bereits eigelogt ist. Es ist so: Ich rufe nie das Loginformular explizit auf. Ich rufe die eigentliche Zielseite auf und wenn man nicht eingeloggt ist, bekommt man automatisch den Logindialog. Ist das der Fall, logge ich mich ein.

    3daycliff schrieb:

    Dann kommt ein sehr frickliges If-Konstrukt wo du noch eine Funktion definiert.

    Meinst du die Abfrage des Strings "not logged in"? Finde ich nicht wirklich frickelig. Die Funktion habe ich von der in den Kommentaren angegebenen Website.

    3daycliff schrieb:

    Und machst dann noch mal einen Request mit Login-Daten

    Das ist dann der eigentlich Login.

    3daycliff schrieb:

    Anschließend leitest du auf die Seite, auf der man sich mit dem Script einloggt, um.

    Nach erfolgreichem Login will ich die Seite (im eingeloggten Zustand) einfach aufrufen. Einfach eine Ausgabe wäre nicht gut, denn dann bin ich ja noch auf lokaler Seite und nicht auf dem Fremdserver (der Fremddomain).

    3daycliff schrieb:

    Hast du vor, dass dich der Server einloggt, der Browser das Cookie setzt und dich auf die eigentliche Seite umleitet, so dass du dann auf der anderen Seite unter der erstellten Session arbeiten kannst?

    nikeee13 schrieb:

    Möchtest du den Client, also den Seitenaufrufer von Seite A auf Server B einloggen?

    Exakt das. Ich ging davon aus, dass die Funktion "read_header" die Cookies aus dem Header auslist und setzt.

    3daycliff schrieb:

    Das wäre AFAIK nicht möglich.

    nikeee13 schrieb:

    Das wird so nicht funktionieren, da der Request direkt von Server A->B geht.

    OK, das erklärt einiges. Allerdings funktioniert laut diverser Internetseiten ein Login grundsätzlich schon. Allerdings ist dort nie von Cookies auf Clientseite die Rede.

    nikeee13 schrieb:

    Die JQuery-Zeile würde in etwa so aussehen:

    Das klingt auch OK. Ich werde das umgehend testen. Ich melde mich.

    EDIT: Mit jQuery haut's leider nicht hin. Mittlerweile hat sich folgender Code ergeben, der allerdings immer "error" zurückgibt:

    JavaScript-Quellcode

    1. function callIntranet(ziel) {
    2. switch (ziel) {
    3. case '1':
    4. ziel = 'https://...';
    5. break;
    6. case '2':
    7. ziel = 'https://...';
    8. break;
    9. case '3':
    10. ziel = 'https://...';
    11. break;
    12. case '4':
    13. ziel = 'https://...';
    14. break;
    15. case '5':
    16. ziel = 'https://...';
    17. break;
    18. case '6':
    19. ziel = 'https://...';
    20. break;
    21. case '7':
    22. ziel = 'https://...';
    23. break;
    24. default:
    25. alert('Fehler bei Login: falsches Ziel angegeben!');
    26. return;
    27. }
    28. var username = "x";
    29. var password = "y";
    30. $.ajax({
    31. type: "POST",
    32. url: "https://...",
    33. dataType: "text",
    34. crossDomain: true,
    35. data: {
    36. user: username,
    37. password: password,
    38. authmethod: "default",
    39. url: ""
    40. },
    41. complete: function( jqXHR, textStatus ) {
    42. alert(textStatus);
    43. window.location = ziel;
    44. }
    45. });
    46. }
    Besucht auch mein anderes Forum:
    Das Amateurfilm-Forum

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Marcus Gräfe“ ()

    Was genau kommt denn für ein Fehler? Es könnte sein, dass der Browser dir das verbietet, je nachdem ob der Zieldienst von Server B sowas erlaubt oder nicht.
    Bei Chrome steht dann immer was in der Dev-Console, wenn das nicht erlaubt ist. Wird bei FF denke ich auch so ein.

    Sollte das wirklich so sein, wüsste ich auch nicht, was man noch machen könnte, außer einem IFrame, denn die Cross-Origin-Policy ist genau dafür da, dass man sowas nicht kann. Der Betreiber vom Dienst auf Server B müsste das schon explizit erlauben (wird z. B. bei vielen APIs gemacht).
    Von meinem iPhone gesendet
    "error" ist das, was die Ajax-Funktion zurückgibt. Mehr leider nicht.

    Die Konsole von FF sagt: POST https://... [HTTP/1.1 302 Found]

    Zudem gibt's diese Headerinformationen:


    Möglicherweise muss es doch ein IFrame sein...

    EDIT: Ich könnte zwar die IFrame-Methode verwenden, die ich bis jetzt schon hatte, aber das Problem ist, dass ich nicht weiß, wann der Login abgeschlossen ist. Daher wird bisher einfach 5 Sekunden gewartet. Auch wenn der Login nach einer halben Sekunde abgeschlossen ist. Und dauert der Login 6 Sekunden, so klappt es halt nicht. Daher habe ich nun was anderes mit jQuery und IFrame versucht. Leider wieder ohne Erfolg. Liegt's wieder am Cross-Site-Scripting? Hier ein HTML- bzw. JS-Code (innerhalb einer PHP-Datei):

    HTML-Quellcode

    1. <html>
    2. <head>
    3. <title></title>
    4. <script type="text/javascript" src="jquery.js"></script>
    5. </head>
    6. <body>
    7. <iframe name="intranet_login" src="about:blank"></iframe>
    8. <form method="post" action="https://..." name="f" target="intranet_login">
    9. <input type="hidden" name="user" value="<?php echo $user; ?>">
    10. <input type="hidden" name="password" value="<?php echo $password; ?>">
    11. <input type="hidden" name="authmethod" value="default">
    12. <input type="hidden" name="url" value="">
    13. </form>
    14. <script type="text/javascript">
    15. $("#f").bind('ajax:complete', function(event) {
    16. event.preventDefault();
    17. document.location.href = "<?php echo $ziel; ?>";
    18. });
    19. self.document.forms['f'].submit();
    20. </script>
    21. </body>
    22. </html>


    $user, $password und $ziel sind in einem anderen PHP-Block im Skript. Ich wollte irgendwie auf die Beendigung des Submits warten, aber es klappt nicht. Ist mein Vorhaben überhaupt irgendwie realisierbar (außer mit einer EXE-Datei)? Das Abschicken an sich geht, nur erfolgt die Weiterleitung nur an die vom Login-Formular festgelegte Adresse, nicht an meine Wunschadresse.
    Besucht auch mein anderes Forum:
    Das Amateurfilm-Forum

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Marcus Gräfe“ ()

    Ich bin jetzt auch nicht der Cross-Domain-Experte, aber ich glaube der Ansatz geht auch nicht. Das Problem ist, du rufst eine Seite von Domain x ab und machst dann einen Request an Domain y.
    Hier müsste es schon ein Fehler geben, es sei dann, Domain y setzt in seinem Response den passenden Access-Control-Allow-Origin-Header.
    Ansonsten bliebe wohl nur die IFrame-Lösung (den Frame kannst du glaube ich auch, wenn du keine Daten abgreifen möchtest) oder du bastelst dir einen Webproxy auf Basis von PHP der zwischen Client und dem eigentlichen Ziel vermittelt, was dann aber wohl mehr Probleme als Vorteile mit sich bringt...

    PS: Frickelig (unter anderem), weil > 0 und weil eine Funktion innerhalb von einem if-Block definiert wird, die danach aber unabhängig von der Bedingung verwendet wird.
    Ich habe folgenden Code gerade ausprobiert. Bei mir hat er funktioniert.

    JavaScript-Quellcode

    1. // Unsichtbaren iframe erstellen und dokument anfügen
    2. var fr = document.createElement("iframe");
    3. fr.style.display = "none";
    4. document.body.appendChild(fr);
    5. // reagieren, sobald dieser geladen ist.
    6. $(fr).load(function() {
    7. var $frContent = $(fr).contents();
    8. // Mit dem Inhelt des Frames arbeiten
    9. $('#usernameFeld', $frContent).val("benutzername");
    10. $('#passwordFeld', $frContent).val("passwort"); // Input-Felder im frame befüllen
    11. $('#formId', $frContent).submit(function() {
    12. window.location= "http://second.tld"; // Nach Form-submit auf Seite weiterleiten
    13. });
    14. });
    15. fr.src = "http://second.tld/Loginpage"; // frame zur Zielseite navigieren

    Die Selektoren in der JQuery-Funktion setzen sich aus "#id" zusammen (wie bei CSS). Falls die Felder keine IDs haben, musst du dir die Elementa anders holen (siehe Selektoren-Eintrag in der JQuery-Doku).
    Von meinem iPhone gesendet
    Mit welchem Browser hast du das getestet? Und der Code lag auf einer anderen Domain als die Loginseite? Und beides waren keine "lokalen Domains"?

    Bei mir passiert nichts, also die Logindaten werden nicht eingetragen und man wird nicht zur Seite nach dem Login weitergeleitet. Die Firefox-Konsole meldet Error: Permission denied to access property 'document' in der jquery.js. Da ich im Moment nur die komprimierte Version von jquery habe, weiß ich nicht, an welcher Stelle (ist dann ja quasi nur eine Zeile).

    Laut stackoverflow.com/questions/79…-access-property-document ist das wieder das Cross-Domain-Problem. Wobei da was davon steht, dass auch HTTP auf der einen und HTTPS auf der anderen Seite das Problem verursachen kann. Kannst du mal testen, ob es bei dir auch funktioniert, wenn du mal HTTP und mal HTTPS hast (also pro Server unterschiedlich)?

    Ich kann das leider nicht testen (mit gleichem Protokoll auf beiden Seiten), denn die Loginseite erfordert zwingend SSL und unser lokaler Server hat derzeit keine SSL-Unterstützung. Ich würde die nur aktivieren lassen, wenn es auf jeden Fall funktioniert.
    Besucht auch mein anderes Forum:
    Das Amateurfilm-Forum