Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
fopen Frage [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr
brauche Webseite ideal für Vereine und Firmen
- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
fopen Frage


 
fear
18-07-2004, 02:10 
 
Hallo,

ich habe eine Frage: Wie kann ich z.B. ein Script schreiben das sich auf www.meinedomain.de einloggt mit einem Benutzernamen und einem Passwort.
Über GET würde das so aussehen: www.meinedomain.de/index.php?action=login&name=NAME&pass=PASSWORT&stats=1

Wie mach ich nun mit einem fopen das ich ein POST "vortäusche"? Grund ich möchte das User sich auf der Loginseite einloggen und nicht z.B. einfach über die URL.

Vielen Dank für die Hilfe im voraus.

 
Wurzel
18-07-2004, 11:30 
 
such mal nach "Post2Host" oder "post to host"

 
wahsaga
18-07-2004, 12:03 
 
http://www.dclp-faq.de/q/q-code-post.html

 
fear
18-07-2004, 18:46 
 
Das scheint irgendwie nicht zu funktionieren. :(

Steht war Sent etc. dran, aber er filtert die Sessionid nicht richtig raus.


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, 1024);
if(eregi("?session=(.*)", $res, $daten))
{
$sessionid = $daten[1];
break;
}
}
printf("Done!\n");
fclose($fp);

echo $res;
}

$data = "index.php?action=login&member=NICK&pass=PASS&stats=1";

printf("Go!\n");
PostToHost("www.meinedomain.de","/","http://www.meinedomain.de",$data);

Nachdem Login wird er auf user.meinedomain.de/user.php?session=SESSION geleitet.. :>

 
wahsaga
18-07-2004, 22:28 
 
warum folgst du nicht der schreibweise im beispiel?

bei dir steht der scriptname in $data mit drin; er gehört aber wohl eher in $path ...

 
fear
19-07-2004, 11:29 
 
Okay ich habe nun dem Beispiel gefolgt, aber das filtern der Session funktioniert immer noch nicht :(


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, 1024);
if(eregi("?session=(.*)", $res, $daten))
{
$session = $daten[1];
break;
}
}
printf("Done! Die Session ist: $session\n");
fclose($fp);

echo $res;
}

$data = "action=login&member=NICK&pass=PASS&stats=1";

printf("Go!\n");
PostToHost("www.meinedomain.de","/index.php","http://www.meinedomain.de/index.php?action=login",$data);

- -

Alle Zeitangaben in WEZ +2. Es ist jetzt 19:45 Uhr.