Mit PHP und cURL in Intranet einloggen

  • Servus Leute,


    ich versuche mich gerade mittels PHP und cURL in das Intranet meiner Firma einzuloggen.

    Den Login an sich habe ich mittlerweile geschafft. Allerdings bekomme ich sofort die Nachricht, dass die maximale Sitzungszeit abgelaufen wäre und werde wieder ausgeloggt.

    Ich denke mal, dass der Beginn einer solchen Sitzung irgendwo geloggt wird. Diesen Marker werde ich zunächst auf Null setzen müssen, richtig?


    Wo wird sowas in der Regel gespeichert? Cookie? Wie gehe ich da ran?


    Grüße,

    Michael

  • PHP curl -> login -> Firma

    Bei Firma läuft auch PHP?


    Du hast sicherlich eine Datei, in der eine Session geschrieben wurde.

    Die läuft bei Inaktivität aus. Bei PHP default 1440 Sekunden.


    Normalerweise wird die Session erneuert, bei jedem Aufruf.

    Sind zB 1000 Sekunden vergangen, und Du setzt eine neue Request auf, dann wird die Session "erneuert" und Du hast wieder 1440 Sekunden.


    Um ein Timeout zu umgehen, kannst Du

    1. die Einstellungen bei der Firma ändern,

    oder

    2. aller x Sekunden eine Request absetzen.


    Zu 2. könntest Du einen Endpoint anlegen, der nur dafür da ist, um die Session zu erneuern (refresh).


    Eine Dritte Möglichkeit wäre, bei abgelaufener Session einen erneuten Login durchzuführen.

    Dazu muss aber der Server (Firma) eine Brachbare Meldung zurückgeben.

    Zb Http response: 401 Unauthorized

    Dein Script erkennt dann, dass die Session abgelaufen ist, und setzt einen erneuten Login ab.


    Ich empfehle die re-login Methode (3.).

    Denn egal warum Du nicht mehr eingeloggt bist, Du loggst Dich wieder ein und weiter gehts.

  • Hier ist der code für den login:


    Dieser code macht rein gar nichts. Mittlerweile bekomme ich nicht mal mehr die Meldung, dass die Sitzung abgelaufen ist. Die Datei download.txt wird weder erstellt, noch geschrieben.

    Ich glaube, ich steht ganz gewaltig auf dem Schlauch?!? Kann jemand evtl. helfen?

    Grüße,

    Michael

  • Code
    $var = "username=" . $username . "&password=" . $pin . $password";

    bei $password hast Du ein offenes ".


    Setze mal am Anfang des Scripts das hier ein:

    Code
    error_reporting(E_ALL);
    ini_set('display_errors', 1);

    So bekommst Du Fehler gemeldet.


  • So, mittlerweile läuft das alles soweit, dass ich nicht ausgeloggt werde. Auch die Text-Datei wird erstellt. Allerdings ist der Inhalt relativ überschaubar. Nämlich ein 1.

    Ist die Variable $content lediglich der Rückgabewert, dass curl_exec erfolgreich ausgeführt wurde? Wo ist denn dann der Inhalt der Seite, die weiter oben definiert wurde?

  • curl_exec gibt true oder false,

    es sei denn Du gibst die Option

    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

    an, was Du ja gemacht hast.


    Probier mal die Option beim zweiten Call erneut zu setzen:

    Und was kommt beim var_dump raus?

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!