tutorials.de Buch-Aktion 05/2012
Seite 1 von 2 12 LetzteLetzte
ERLEDIGT
JA
ANTWORTEN
19
ZUGRIFFE
850
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    gerd87 gerd87 ist offline Mitglied Gold
    Registriert seit
    Mar 2005
    Beiträge
    120
    Hallo,
    ich lasse mir einen Seitenquelltext mit file_get_contents anzeigen.
    Nun ist der Quelltext als eingeloggter Benutzer aber anders. (Z.B. Preise werden angezeigt).
    Muss ich da vorher über die Loginseite ? Wenn ja wie? Die Logindaten sind mir ja bekannt, aber wenn ich mich einlogge und mir den Quelltext anzeigen lasse, ist das der für ausgeloggte. Hat das was mit Cokkies zutun?

    Vielleicht hat jemand eine Idee, wie man das machen kann.
    Besten Dank, Gerd
     

  2. #2
    Registriert seit
    Mar 2004
    Beiträge
    490
    Hallo,

    wie ich dich verstehe möchtest du von einem externen Server "geschützte Inhalte" anzeigen lassen.
    Sprich dein Script liegt auf Server A und von da aus möchtest du Inhalte von Server B abrufen, die man als eingeloggter Benutzer zu sehen sind.

    Wenn dem so ist, dann ist das erstens abhängig von der Art des Logins die auf Server B verwendet werden und zweitens ob man ein PHP Script als "virtuellen Browser" nachbauen kann. Was meine ich damit...

    Wenn man den ersten Punkt nachgeht, so gibt es einmal die Möglichkeit Cookies zu benutzen, wo eine Authentifizierung über beim User lokal abgelegte Dateien durchgeführt werden. Sprich die Cookies müssten auf Server A auch liegen. Wenn Server B Sessions verwendet (authentifizierungsdateien liegen auf Server B) und diese werden nach meinem Wissenstand an mehrere Dingen des Users festgemacht (IP, Browser ID, Browser Informationen etc) müsstest du diese nachstellen.

    Irgendwie glaube ich, das das nicht geht (wenn das ganze Szenario so abläuft) oder ich denke gerade zu komplex.
    Gruss
     

  3. #3
    Registriert seit
    Dec 2002
    Ort
    Trier
    Beiträge
    17.502
    Blog-Einträge
    10
    Greifst du über das Dateisystem oder über HTTP auf die Ressource zu? Bei letzterer ist eine Authentifizierung nur über die fsockopen()-Funktion möglich.
     
    Markus Wulftange

  4. #4
    gerd87 gerd87 ist offline Mitglied Gold
    Registriert seit
    Mar 2005
    Beiträge
    120
    Vielen Dank, für die Antworten,

    kann jemand mal ein beispiel zeigen, wie es gehen könnte wenn ich z.B. die Seite www.meineseite.de/login.php aufrufe und mich mit "username" und "password" einloggen will?
    Was muss ich da angeben? Habe bis jetzt nur mit file_get_contents gearbeitet.

    Vielen Dank,
    Gruß, Gerd
     

  5. #5
    Avatar von Marvin Schmidt
    Marvin Schmidt Marvin Schmidt ist offline Mitglied Gold
    Registriert seit
    Jul 2004
    Ort
    Sparrieshoop (Schleswig-Holstein)
    Beiträge
    208
    Nabend,
    ich hoffe ich hab das jetzt richtig verstanden:
    PHP-Code:
    <?php

    function POSTit($target$data) {
        
    $url parse_url($target);
        
        
    $fp fsockopen($url['host'], 80$errno$errstr30);
        if (!
    $fp) {
               echo 
    "$errstr ($errno)<br />\n";
        } else {
            
    $inputs = array();
            foreach (
    $data as $input => $value) {
                
    $inputs[] = $input '=' rawurlencode($value);
            }
            
    $postdata implode("&"$inputs);
            echo 
    "<h1>$postdata</h1>\n";
            
               
    fputs($fp"POST " $url['path'] . " HTTP/1.1\r\n");
            
    fputs($fp"Host: " $url['host'] . "\r\n");
            
    fputs($fp"Content-Type: application/x-www-form-urlencoded\r\n");
            
    fputs($fp"Content-Length: " strlen($postdata) . "\r\n");
            
    fputs($fp"\r\n");
            
    fputs($fp$postdata "\r\n");
            
               while (!
    feof($fp)) {
                       echo 
    fgets($fp128);
               }
               
    fclose($fp);
        }
    }

    // alle signifikanten POST-Daten angeben
    $input_fields = array(    'nick' => 'username',
                
    'pass' => 'password',
                
    'submit' => 'Login'
            
    );

    // Script an das die Form sendet angeben
    //$posted = POSTit('http://www.example.com/form/action/script.php', $input_fields);
    ?>
    Danach den Response-Header begutachten und gucken, ob Cookies gesetzt werden ("Set-Cookie: "), man weitergeleitet wird ("Location: ") etc.
    Wenn Cookies gesetzt werden, dann müssen diese bei späteren Anfragen wieder mitgeschickt werden ("Cookie: ")

    Gruß
    Marvin
     
    Wer an Telekinese glaubt, hebt bitte meine Hand...

  6. #6
    Avatar von Dennis Wronka
    Dennis Wronka Dennis Wronka ist offline Soulcollector
    Registriert seit
    Apr 2002
    Ort
    Hong Kong
    Beiträge
    12.296
    Blog-Einträge
    231
    Eine Funktion wie Du die Antwort vom Server fachgerecht filetieren kannst (und noch ein paar Kleinigkeiten mehr) findest Du uebrigens hier.
     
    PHP Class Collection - PHP-Klassen fuer PHP 5 (und Teilweise auch fuer PHP 4)
    Updates: Catcher 1.1, FTPConnection 1.2, MultiSQL 1.1, RSS2 1.1, SMTPConnection 1.4
    __________________
    EasyLFS - Hintergrundinformationen, Installationsanleitung, Softwareliste und Download
    EasyLFS Projektthread - Informationen, Status und Diskussion zu meiner Linux-Distribution
    __________________
    Ich bin die Schildkroete, mein Sohn. Ich habe das Universum erschaffen, aber bitte mach mir daraus keinen Vorwurf; ich hatte Bauchschmerzen.
    __________________
    Zitat Zitat von Friedrich Nietzsche
    Man muss noch Chaos in sich haben, um einen tanzenden Stern gebaeren zu koennen.

  7. #7
    gerd87 gerd87 ist offline Mitglied Gold
    Registriert seit
    Mar 2005
    Beiträge
    120
    Danke für den Quelltext,
    bis jetzt hat es aber noch nicht geklappt ein gültiges cookie zu bekommen.
    Was muss ich denn da eingeben.
    Ich habe z.B. die Seite www.meineseite.de , das Feld user mit testuser und das Feld passwort mit testpasswort.
     

  8. #8
    Avatar von Dennis Wronka
    Dennis Wronka Dennis Wronka ist offline Soulcollector
    Registriert seit
    Apr 2002
    Ort
    Hong Kong
    Beiträge
    12.296
    Blog-Einträge
    231
    Was hat der Server denn zurueckgegeben?
    Den Cookie musst Du aus der Serverantwort ziehen und dann bei den naechsten Aufrufen natuerlich wieder uebergeben.
     
    PHP Class Collection - PHP-Klassen fuer PHP 5 (und Teilweise auch fuer PHP 4)
    Updates: Catcher 1.1, FTPConnection 1.2, MultiSQL 1.1, RSS2 1.1, SMTPConnection 1.4
    __________________
    EasyLFS - Hintergrundinformationen, Installationsanleitung, Softwareliste und Download
    EasyLFS Projektthread - Informationen, Status und Diskussion zu meiner Linux-Distribution
    __________________
    Ich bin die Schildkroete, mein Sohn. Ich habe das Universum erschaffen, aber bitte mach mir daraus keinen Vorwurf; ich hatte Bauchschmerzen.
    __________________
    Zitat Zitat von Friedrich Nietzsche
    Man muss noch Chaos in sich haben, um einen tanzenden Stern gebaeren zu koennen.

  9. #9
    gerd87 gerd87 ist offline Mitglied Gold
    Registriert seit
    Mar 2005
    Beiträge
    120
    Ergebnis:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    
    HTTP/1.1 200 OK
    Date: Wed, 12 Apr 2006 15:00:00 GMT
    Server: Apache/1.3.27 (Linux/SuSE) mod_fastcgi/2.4.2 FrontPage/4.0.4.3 PHP/4.4.1 mod_perl/1.27 mod_ssl/2.8.12 OpenSSL/0.9.6i
    X-Powered-By: PHP/4.4.1
    Set-Cookie: osCsid=ed0cd4ece349ac2a88215e3952461d1e; path=/; domain=www.......de
    Expires: Thu, 19 Nov 1981 08:52:00 GMT
    Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
    Pragma: no-cache
    Transfer-Encoding: chunked
    Content-Type: text/html
     
    3c63

    Der bringt auch ein Cookie, nur funktioniert es nicht. Ich gehe davon aus, dass der Login nicht geklappt hat.
     

  10. #10
    Avatar von Dennis Wronka
    Dennis Wronka Dennis Wronka ist offline Soulcollector
    Registriert seit
    Apr 2002
    Ort
    Hong Kong
    Beiträge
    12.296
    Blog-Einträge
    231
    Was genau funktioniert denn nicht?
    Uebergibst Du den Cookie beim naechsten Seitenaufruf auch wieder?
     
    PHP Class Collection - PHP-Klassen fuer PHP 5 (und Teilweise auch fuer PHP 4)
    Updates: Catcher 1.1, FTPConnection 1.2, MultiSQL 1.1, RSS2 1.1, SMTPConnection 1.4
    __________________
    EasyLFS - Hintergrundinformationen, Installationsanleitung, Softwareliste und Download
    EasyLFS Projektthread - Informationen, Status und Diskussion zu meiner Linux-Distribution
    __________________
    Ich bin die Schildkroete, mein Sohn. Ich habe das Universum erschaffen, aber bitte mach mir daraus keinen Vorwurf; ich hatte Bauchschmerzen.
    __________________
    Zitat Zitat von Friedrich Nietzsche
    Man muss noch Chaos in sich haben, um einen tanzenden Stern gebaeren zu koennen.

  11. #11
    gerd87 gerd87 ist offline Mitglied Gold
    Registriert seit
    Mar 2005
    Beiträge
    120
    Das einloggen geht nicht.
    Der Cookie, den ich bekomme ist ungültig
     

  12. #12
    Avatar von Dennis Wronka
    Dennis Wronka Dennis Wronka ist offline Soulcollector
    Registriert seit
    Apr 2002
    Ort
    Hong Kong
    Beiträge
    12.296
    Blog-Einträge
    231
    Dann werden wohl Username/Passwort entweder von Dir oder vom Script falsch uebergeben.
     
    PHP Class Collection - PHP-Klassen fuer PHP 5 (und Teilweise auch fuer PHP 4)
    Updates: Catcher 1.1, FTPConnection 1.2, MultiSQL 1.1, RSS2 1.1, SMTPConnection 1.4
    __________________
    EasyLFS - Hintergrundinformationen, Installationsanleitung, Softwareliste und Download
    EasyLFS Projektthread - Informationen, Status und Diskussion zu meiner Linux-Distribution
    __________________
    Ich bin die Schildkroete, mein Sohn. Ich habe das Universum erschaffen, aber bitte mach mir daraus keinen Vorwurf; ich hatte Bauchschmerzen.
    __________________
    Zitat Zitat von Friedrich Nietzsche
    Man muss noch Chaos in sich haben, um einen tanzenden Stern gebaeren zu koennen.

  13. #13
    gerd87 gerd87 ist offline Mitglied Gold
    Registriert seit
    Mar 2005
    Beiträge
    120
    Irgendwie komme ich nicht weiter.
    Wie muss ich denn genau die zugangsdaten übergeben, und in welcher Variable wird das cookie gespeichert?
     

  14. #14
    Registriert seit
    Dec 2002
    Ort
    Trier
    Beiträge
    17.502
    Blog-Einträge
    10
    Hast du zufällig den Firefox-Browser zur Verfügung? Dann installiere mal die „LiveHTTPHeader“-Erweiterung und prüfe mal selbst, welche HTTP-Header-Felder zur Authentifizierung mit welchen Werten gesetzt werden.
     
    Markus Wulftange

  15. #15
    gerd87 gerd87 ist offline Mitglied Gold
    Registriert seit
    Mar 2005
    Beiträge
    120
    Danke für den Tipp.
    Bin jetzt schon etwas weiter.
    Wie kann man den Header einer bestimmten Seite Seite abrufen?
    Ich brauche den Cookie der dort vergeben wird.
     

Ähnliche Themen

  1. Antworten: 8
    Letzter Beitrag: 27.04.05, 19:10
  2. Benutzer von Beitrag anzeigen
    Von josephina im Forum PHP
    Antworten: 1
    Letzter Beitrag: 13.01.05, 20:46
  3. Eingeloggter Benutzer herausfinden
    Von kahuna im Forum .NET Archiv
    Antworten: 2
    Letzter Beitrag: 06.01.05, 08:30
  4. Anmeldung Win 2000 Pro (Benutzer anzeigen)
    Von schultze im Forum Microsoft Windows
    Antworten: 1
    Letzter Beitrag: 20.05.04, 13:03
  5. mom. anwesende Benutzer anzeigen?
    Von HAL im Forum PHP
    Antworten: 3
    Letzter Beitrag: 10.03.03, 14:41