Formularzugriff mit method="post" per PHP simulieren.
Schnaps
- php
Um die Sache nun mal mit Daten zu füttern!
Ich möchte gerne unseren Clanmitglieder anbieten das sie Ihre Account Infos von ihrem Americas Army Account bei uns auf der Homepage einsehen können.
Die Seite wo man sich einlogen muß ist
[url]http://login.americasarmy.com/login.php[/url]
Ich habe mal einen Testaccount gemacht.
Username: Nur_zum_testen
Password: C9EF321DF4
Damit kommt man dann zu der Seite wo die Infos stehen die ich später per RegExp rausfiltern willl, damit ich sie bei uns auf der Seite Anzeigen lassen kann.
Dafür müßte ich aber das Absenden des Formulares mit PHP simulieren.
Das Formular wird an [url]http://login.americasarmy.com/login_ack.php[/url] gesendet, damit man eine Anzeige bekommt müßen an diese Seite die Variabeln
fldUsername=Nur_zum_testen &
fldPassword=C9EF321DF4 &
btnOK=OK
per method="post" übergeben werden.
Das wollte ich dann mit folgendem Script machen, damit ich danach den HTML Quellcode der Seite mit den Infos in der Varibale $res habe.
Hier PHP Code:
[php]<?php
$data = "fldUsername=Nur_zum_testen&fldPassword=C9EF321DF4&btnOK=OK";
printf("Go!\n");
$x = PostToHost(
"http://login.americasarmy.com",
"/login_ack.php",
"http://login.americasarmy.com/login.php",
$data
);
echo "Jetzt kommt $x<br><br>";
echo $x;
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;
}
[/php]
Es hagelt aber nur Fehlermeldungen, da ich die Funktion nur bekommen habe nicht selber geschrieben habe finde ich den Fehler leider nicht.
Hoffe ihr könnt mir da weiter helfen
MFG
Wauzy
Hallo Wauzy!
Warum so kompliziert? Wenn du die Variablen mitposten möchtest, tu das doch einfach über <input type="hidden" name="VAR_NAME" value="INHALT">
Oder du hängst die $data einfach an die Seite an, die unter <form action="..." angegeben ist.
Gruß Patrick
Hallo!
Das wollte ich dann mit folgendem Script machen, damit ich danach den HTML Quellcode der Seite mit den Infos in der Varibale $res habe.
Hier PHP Code:
[php]<?php
$data = "fldUsername=Nur_zum_testen&fldPassword=C9EF321DF4&btnOK=OK";printf("Go!\n");
$x = PostToHost(
"http://login.americasarmy.com",
"/login_ack.php",
"http://login.americasarmy.com/login.php",
$data
);echo "Jetzt kommt $x<br><br>";
echo $x;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;
}
[/php]Es hagelt aber nur Fehlermeldungen, da ich die Funktion nur bekommen habe nicht selber geschrieben habe finde ich den Fehler leider nicht.
Gut, sieht mir aus wie das hier: http://www.dclp-faq.de/q/q-code-post.html
Du solltest aber schon verstehen was Du da machst. Das ganze soll nur ein Beispiel darstellen, und Du trägst jetzt den ganzen Ballast vermutlich unnötig mit Dir rum. Z.B. Referer - brauchst Du den?
Jedenfalls solltest Du Dir mal ganz genau ansehen in wiefern sich Deine Parameter von denen des Beispiels unterscheiden, denn da liegt das Problem.
Guck Dir im speziellen mal den "host" Parameter an.
Wie in dem Artikel mit dem Beispiel geraten, solltest Du Dir mal die Funktionsweise der Funktion fsockopen() näher ansehen, da gibt es noch viel mehr Beispiele, vor allem in den Kommentaren! http://de3.php.net/fsockopen
Gut, und die Fehlermeldungen wären bei der Lösungs Deines Problems durchaus hilfreich gewesen, denn da wird genau dieses stehen.
Fehlermeldungen sind nichts schlechtes sondern wollen Dir Hilfestellungen bei der Problemlösung geben. Daher Fehlermeldungen immer exakt(per c&p) mitposten.
Grüße
Andreas