curl auf HTTPS ...

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • curl auf HTTPS ...

    Hallo Zusammen,

    ich habe auch ein kleines Problem mit CURL. Ich möchte mich auf einer HTTPS-Seite mit meinem Skript einloggen. Auf dieser Seite möchte ich verschiedene Member-Funktionen nutzen, beispielsweise checken ob jemand mit dem Namen XYZ gerade online ist oder nicht.

    Bevor ich aber zu der Programmierung der Member-Funktionen komme möchte ich mich ersteinmal einloggen können; das klappt aber nicht mit dem folgenden Code:

    PHP-Code:
        $LOGINURL"https://www.entfernterserver.com/login.aspx?ReturnUrl=%2fDefault.aspx";


        
    $agent "Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.4) Gecko/20030624 Netscape/7.1 (ax)";
     

        
    $params =     '__EVENTTARGET=&'.
                    
    '__EVENTARGUMENT=&'.
                    
    '__VIEWSTATE='.$viewstate.'&'.
                    
    'UserName2='.urlencode($user_id).'&'.
                    
    'Password2='.urlencode($user_password).'&'.
                    
    'LoginButton2=Anmelden&';


       
    $ch curl_init();
       
    curl_setopt($chCURLOPT_POST,1);
       
    curl_setopt($chCURLOPT_POSTFIELDS,$params);
       
    curl_setopt($chCURLOPT_URL,$LOGINURL);
       
    curl_setopt($chCURLOPT_SSL_VERIFYHOST,  2);
       
    curl_setopt($chCURLOPT_USERAGENT$agent);
       
    curl_setopt($chCURLOPT_RETURNTRANSFER,1);
       
    curl_setopt($chCURLOPT_SSL_VERIFYPEERFALSE);  // this line makes it work under https

       
    $result=curl_exec ($ch);
        if ( 
    curl_errno($ch) ) {
            echo 
    "ErrorNr: ".curl_errno($ch).' - '.curl_error($ch);
        } 
    // if

       
    curl_close ($ch);

       echo(
    "<br>Results: <br>".$result); 
    Das Problem ist, dass ich eine Fehlermeldung bekomme:
    "Object moved to here" und unter here ist ein link auf meinem Server "http://www.meinserver.de/login.aspx?....

    Was mache ich falsch, oder weiß jemand woran das liegt?

    Ich habe das Gefühl, dass ich nicht weiterkomme, weil auf der Seite nur relative Pfadangaben genutzt werden. Kann das sein?

    Für eure Hilfe bedanke ich mich schon im Voraus.

    Gruß

    PS: Ich nutze PHP Version 5.1.1
    Zuletzt geändert von devjam; 18.07.2006, 11:14.

  • #2
    Re: curl auf HTTPS ...

    Original geschrieben von devjam
    Ich möchte mich auf einer HTTPS-Seite mit meinem Skript einloggen. Auf dieser Seite möchte ich verschiedene Member-Funktionen nutzen, beispielsweise checken ob jemand mit dem Namen XYZ gerade online ist oder nicht.
    Und das erlaubt dir der Betreiber dieser Seite auch ...?

    Das Problem ist, dass ich eine Fehlermeldung bekomme:
    "Object moved to here" und unter here ist ein link auf meinem Server "http://www.meinserver.de/login.aspx?....
    Das dürfte keine Fehlermeldung sein, sondern der Message Body zu einem HTTP-Statuscode 3xx.

    Ich habe das Gefühl, dass ich nicht weiterkomme, weil auf der Seite nur relative Pfadangaben genutzt werden.
    Im Location-Header (o.ä.) der Serverantwort sollte ein absoluter URL stehen, andernfalls wäre das ein Fehler.

    Im dazu zur Information für den Benutzer ausgelieferten HTML-Dokument kann aber natürlich problemlos eine relative Pfadangabe stehen, die müsstest du dann ggf. vervollständigen.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Hi,

      danke erstmal für Deine Fragen/Antworten.

      Und das erlaubt dir der Betreiber dieser Seite auch ...?
      Ja das darf ich, ich bin sein neuer Partner .


      Das dürfte keine Fehlermeldung sein, sondern der Message Body zu einem HTTP-Statuscode 3xx.
      Ja, da könntest Du Recht haben.


      ... müsstest du dann ggf. vervollständigen.
      Wie mache ich das???


      [COLOR=darkred]PROBLEM:[/COLOR]

      Ich gebe doch mit [COLOR=blue]$LOGINURL[/COLOR] den URL der Seite an, darum verstehe ich nicht so ganz, warum der mir etwas sagt von [COLOR=green]moved ...[/COLOR]

      Eigentlich sollte der Code doch nichts weiter tun, als die Seite $LOGINURL aufzurufen mit den Parametern, die ich Ihm mitgebe. Dann sollte doch als Resultat erstmal die Member-Seite zurückgegeben werden. Oder nicht?

      Kommentar


      • #4
        Original geschrieben von devjam
        Ja das darf ich, ich bin sein neuer Partner .
        Warum lässt du dir dann keine vernünftige Schnittstelle für solche Abfragen bereitstellen, und veranstaltes solch ein Gebastel, welches euch beide unnötig Traffic und Performance kostet ...?
        Ich gebe doch mit [COLOR=blue]$LOGINURL[/COLOR] den URL der Seite an, darum verstehe ich nicht so ganz, warum der mir etwas sagt von [COLOR=green]moved ...[/COLOR]
        Na weil das Script wohl so geschrieben ist, dass es nach dem Login auf eine andere Ressource weiterleitet.
        Eigentlich sollte der Code doch nichts weiter tun, als die Seite $LOGINURL aufzurufen mit den Parametern, die ich Ihm mitgebe. Dann sollte doch als Resultat erstmal die Member-Seite zurückgegeben werden. Oder nicht?
        Oder nicht.
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          Warum ich nicht eine Schnittstelle bereitstellen lassen kann liegt daran, dass er sich den Server für teures Geld hat bauen und installieren lassen. Er möchte nichts an dem System ändern, weil er angst hat das es unstabil oder unsicher wird. Trafic ist ihm egal. Außerdem sind das nicht viele Anfragen. Wenns hoch kommt 10-20 pro Tag.

          Mit der Weiterleitung ist mir bisher garnicht in den Sinn gekommen , aber Du hast recht. Der versucht mich dann weiterzuleiten auf [COLOR=blue]default.aspx...[/COLOR]
          Weil das Skript dies aber nur mit einer relativen Pfadangabe macht, versucht er [COLOR=blue]default.aspx...[/COLOR] auf meinem Server zu finden. Wie könnte ich das verhindern bzw. dem Redirect folgen nach dem Login?

          Kommentar


          • #6
            Dazu, der Weiterleitung direkt zu folgen, müsste cURL doch m.W. eine Option bieten ...
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #7
              Wie müsste ich denn danach suchen? und wo?

              Hab noch was herausgefunden:
              Wenn ich mich mit einem gewöhnlichen Browser einlogge funktioniert es nur, wenn ich cookies zulasse, sonst nicht.

              Was müsste man denn da beachten?
              Zuletzt geändert von devjam; 18.07.2006, 14:39.

              Kommentar


              • #8
                Für alle die es interessiert:

                es lag auch an den COOKIES. Ich habe noch die OPTIONEN

                CURLOPT_COOKIEJAR, CURLOPT_COOKIEFILE

                gesetzt und jetzt funkt es.

                Danke für die Hinweise

                Kommentar

                Lädt...
                X