Kann PHP wie ein Browser funktionieren?

lukelukeluke

Erfahrenes Mitglied
Hallo zusammen,
Ich bin ein fortgeschrittener PHP Programmierer. Ich habe schon gelesen / Funktionen davon gesehen, dass PHP POST und GET daten senden kann, und auch einen Browser-Header emulieren könnte. Also sich zum Besipiel als einen Internet Explorer ausgibt und damit auf eine Seite geht.
Ich habe auf verschiedenen Seiten im Internet Login- Rechte. Nun möchte ich wissen, ob ich mit PHP ein Login auf einer Seite machen kann, um dort Daten (die HTML Seite) abzurufen. Also in eine Seite, deren Member Bereich mit Session-IDs funktioniert, einlogen.
Ist sowas möglich / hat jemand von euch sowas schon gemacht?
Wenn Ihr wisst wo ich näheres darüber nachlesen könnte (Google hat nicht so viel geholfen), wäre ich sehr dankbar!
Grüsse,
Luke
 
Hello,

Habe mal sowas für ein Browsergame geproggt.
Solange mit SESSION IDs gearbeitet wird und nicht mit Cookies gehts relativ einfach.

Hier mal 2 funktionen mit denn ich gearbeitet habe:

Code:
function readURL($urltoread) {
   global $proxy, $port;

   $result = "";
   $fp = fsockopen($proxy, $port);
   if ($fp) {
       fputs($fp, "GET $urltoread HTTP/1.0\r\nHost: $proxy\r\n\r\n");
       while (!feof($fp)) {
           $result .= fgets($fp, 25600);
       }
       fclose($fp);
       return $result;
   }
   else {
       return -1;
   }
}

function getsession()
{
    $content = readURL("http://die.login.url/mit?username&password");
    $st = "Location: ";
    $pos = strpos($content, $st);
    if ($pos === false)
    {
        echo "es ist ein fehler aufgetreten";
        return -1;
    }
    else
    {
        /* Hole Session-String */
        $sub = substr($content, $pos + strlen($st), 84);
        $sstr = substr($sub, -32);
        return $sstr;
    }
}

ciao Ante
 
Im IE geht das, soweit ich weiss, miitlerweile nicht mehr...das Übermitteln der Login-Daten über die URL.

Du müsstest die entsprechenden Header senden(Authorization,username,password,User-Agent)
 
Du kannst mittels fsockopen() einen Browser in PHP implementieren.
Geht alles.
Ich hab damit schonmal angefangen, werd's aber nochmal neu machen da ich grad an einer HTTP-Klasse arbeite.
Die soll dann aehnlich funktionieren wie meine bereits hier veroeffentlichte FTP-Klasse.
Im Moment haeng ich grad an Dateiuploads via POST, aber das krieg ich auch noch hin.
 
Das Problem ist, dass man CURL wohl im Internet recht selten antrifft.

Darum mach ich mir ja mal wieder etwas mehr Arbeit um eine Klasse zum Thema zu schaffen.
 
reptiler hat gesagt.:
Das Problem ist, dass man CURL wohl im Internet recht selten antrifft.

Darum mach ich mir ja mal wieder etwas mehr Arbeit um eine Klasse zum Thema zu schaffen.

libcurl kann durchaus Browser simulieren :)


hiermit würde das die libcurl packen
curl_setopt(HANDLE, CURLOPT_USERAGENT, "Browserkennung");
 
Das ist mir schon klar.
Aber wie viele Hoster bieten die CURL-Funktionen an?
Darum geht es mir ja bei meiner Arbeit.

Ist doch das gleiche mit den FTP-Funktionen. Und die trifft man wohl noch haeufiger an als CURL.
 
Zurück