Seitenquelltext als eingeloggter Benutzer anzeigen

gerd87

Erfahrenes Mitglied
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
 
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
 
Vielen Dank, für die Antworten,

kann jemand mal ein beispiel zeigen, wie es gehen könnte wenn ich z.B. die Seite http://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
 
Nabend,
ich hoffe ich hab das jetzt richtig verstanden:
PHP:
<?php

function POSTit($target, $data) {
	$url = parse_url($target);
	
	$fp = fsockopen($url['host'], 80, $errno, $errstr, 30);
	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($fp, 128);
   		}
   		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
 
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 http://www.meineseite.de , das Feld user mit testuser und das Feld passwort mit testpasswort.
 
Was hat der Server denn zurueckgegeben?
Den Cookie musst Du aus der Serverantwort ziehen und dann bei den naechsten Aufrufen natuerlich wieder uebergeben.
 
Ergebnis:
Code:
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.
 
Zurück