Website mit fsockopen() und Request einladen

Parantatatam

mag Cookies & Kekse
Hi.

Ich wollte eine Website in eine Datei (*.php) auf meinem Server einladen. Habe es mit file_get_contents() versucht, wobei mir der andere Server folgende Meldung gibt:

Warning: file_get_contents('http://externewebsite.com/.../index.php?var1=a&var2=b&var3=c&...') [function.file-get-contents]: failed to open stream: HTTP request failed! HTTP/1.1 401 Unauthorized in /www/htdocs/w009499e/Administration/DataBase/database.php on line 31

Also habe ich mich mal umgeschaut und eine Möglichkeit gefunden: es soll realisierbar mit fsockopen() und Request sein. Man soll dabei Passwort und Nutzername per Request mitschicken. Jetzt zu meiner eigentlichen Frage:

Wie geht das?

Ich bin eigentlich einer, der eher selten an seine Grenzen stößt, aber hier habe ich überhaupt keinen Schimmer, wie ich das machen soll.
Wäre echt toll, wenn mir hier mal einer einen Gedankenanstoß geben könnte und vielleicht den einen oder anderen Code-Schnipsel dalassen könnte.

Danke
 
Zuletzt bearbeitet:
Danke.

Also ich habe jetzt hier dieses Script:
PHP:
function PostToHost($host, $path, $referer, $data_to_send) {
  $fp = fsockopen($host, 80);
  printf("Open!\n");
  fputs($fp, "POST $path HTTP/1.1\r\n");
  fputs($fp, "Host: $host\r\n");
  fputs($fp, "Referer: $referer\r\n");
  fputs($fp, "Content-type: application/x-www-form-urlencoded\r\n");
  fputs($fp, "Content-length: ". strlen($data_to_send) ."\r\n");
  fputs($fp, "Connection: close\r\n\r\n");
  fputs($fp, $data_to_send);
  printf("Sent!\n");
  while(!feof($fp)) {
      $res .= fgets($fp, 128);
  }
  printf("Done!\n");
  fclose($fp);

  return $res;
}

$data = "pid=14&poll_vote_number=2";

printf("Go!\n");
$x = PostToHost(
              "www.linux.com",
              "/polls/index.phtml",
              "http://www.linux.com/polls/index.phtml?pid=14",
              $data
);

Bloß wäre die Frage: WO packe ich nun mein Passwort und Nutzernamen hin, oder brauche ich den garnicht?
 
Nutzername und Passwort muss in die Variable $data. Um die richtigen HTTP Header rauszukriegen kann ich LiveHTTPHeaders als Firefox Plugin empfehlen (einfach schnell googeln).
 
Ja, aber irgendwie muss ich ja den Nutzernamen und das Passwort mit einer Variablen kennzeichnen. Das ist mein Problem.
 
Du musst halt schauen, unter welchem Namen der Nutzername und das Passwort von dem Server normalerweise in die POST/GET Daten geschrieben werden (zB mit LiveHTTPHeaders oder bei GET einfach in der URL) und das dann inklusive dem Nutzernamen und dem Passwort in $data schreiben zB:

Code:
$data = "username=$benutzername&password=$passwort";

Dabei sind $benutzername und $passwort jeweils die Logindaten, die du benutzen möchtest...
 
Laeuft die Anmeldung ueber HTTP-Autentifizierung oder ueber eine Login-Form?

Naja, beides kannst Du auch mit meiner HTTP-Klasse machen. In der Tutorial-Section gibt es ein Tutorial, dort ist aber nicht die aktuellste Version zu finden. Diese findest Du ueber den Link in meiner Signatur.
 
Zurück