Der folgende Beitrag wurde am 04. 07. 2008, 01:09 Uhr von bleicher veröffentlicht.
Grüße,
ich habe mir erlaubt, aus den stücken der hier gegeben funktionen was zusammenzuschneiden:
(write() ist eine file_put_contents(), ausgelgagert, mehr nicht :P
function PostToHost($url , $path, $referer, $postsend) { //Funktion; du kannst sie doch aufrufen, oder?
$fp = fsockopen($url, 80); //in Host wurde der Zielhost definiert. 80 ist der Port, der bei Webseiten ja eigentlich Standard ist.
fputs($fp, "POST $path HTTP/1.1\r\n"); //$path ist der Zielpfad auf dem Host, also das Script oder so, was die $_POST Daten empfangen soll
fputs($fp, "Host: $url\r\n");
fputs($fp, "Referer: $referer\r\n");
fputs($fp, "Content-type: application/x-www-form-urlencoded\r\n");
$ausgabe="";
foreach($postsend as $index => $value) {
$ausgabe .= "'$index': "; // ehemaliges "name"-Attribut im Formular
$ausgabe .= "'$value'"; // der gesendete Wert fur dieses "name"-Attribut
$ausgabe .= "\r\n";
}
write($ausgabe, 'aus.txt');
fputs($fp, "Content-length: ". strlen($ausgabe) ."\r\n"); //Lange deines Posts
fputs($fp, "Connection: close\r\n\r\n");
fputs($fp, $ausgabe); //Dein Post
//while(!feof($fp)) {
//$res .= fgets($fp, 128);
//}
while(!feof($fp)) {
$res .= fgets($fp, 128);
}
write($res, 'res.txt');
fclose($fp);
//return $res;
}
das wird als $ausgabe gesendet (aus.txt):
'test': 'user'
'wert': 'test'
und das gibt der server (res.txt) zurück:
HTTP/1.1 400 Bad Request
Date: Thu, 03 Jul 2008 23:02:49 GMT
Server: Apache
Content-Length: 226
Connection: close
Content-Type: text/html; charset=iso-8859-1
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>400 Bad Request</title>
</head><body>
<h1>Bad Request</h1>
<p>Your browser sent a request that this server could not understand.<br />
</p>
</body></html>
werde aber selbst noch nicht auf anhieb aus den googelergebnissen dazu schlau >_<
wäre für ein hinweis zu meinem brett-vor-dem-kopf dankbar >:]
MFG
bleicher
--
__________________________-
Menschen an sich , sind nicht schlecht - es sind nur ihre Taten (c).
http://www.sexgott-or-not.com/?test=428054
Der folgende Beitrag wurde am 04. 07. 2008, 01:29 Uhr von ChrisB veröffentlicht.
Hi,
> fputs($fp, "Content-type: application/x-www-form-urlencoded\r\n");
Wie Daten (im allgemeinen Parametername=Value-Paare) in dieser Kodierung aussehen, ist dir bekannt?
> das wird als $ausgabe gesendet (aus.txt):
>
> 'test': 'user'
> 'wert': 'test'
Noe, das sieht aber nicht wirklich nach form-urlencoded aus.
MfG ChrisB
--
"The Internet: Technological marvel of marvels - but if you don't know *what* you're lookin' for on the Internet, it is nothing but a time-sucking vortex from hell."
Der folgende Beitrag wurde am 04. 07. 2008, 03:46 Uhr von Edgar Ehritt veröffentlicht.
Hallo Bleicher,
gerade war ich doch ziemlich beschäftigt, mir die RFCs anzusehen, auf denen das ganze fußt. Herausgekommen ist nicht wirklich viel, außer dass sich die Kodierung für den MIME-Type application/x-www-form-urlencoded nahe an die RFC 1738 anlehnt. Glücklicherweise gibt es aber eine Funktion in PHP, die das übernimmt. $ausgabe="";
foreach($postsend as $k=>$v){
$ausgabe.='&';
$ausgabe.=urlencode($k);
$ausgabe.='=';
$ausgabe.=urlencode($v);
}
$ausgabe=substr($ausgabe,1);
Ich vermute nur, dass es daran nicht liegen wird.
> HTTP/1.1 400 Bad Request
> Date: Thu, 03 Jul 2008 23:02:49 GMT
> Server: Apache
> Content-Length: 226
> Connection: close
> Content-Type: text/html; charset=iso-8859-1
Status Code 400 zeugt von Fehlern auf der Protokollebene (zu der der request-body bestehend aus den Postdaten eigentlich nicht gehört, jedoch kann es in Deinem Fall daran liegen, dass CRLF in Deinen Daten vorkommt). Da wäre dann interessant, was genau beim Server angeliefert wird.
Gruß aus Berlin!
eddi
--
Der Verweis auf die Grundlagen Deines Handelns, ist das Joch zur Freiheit.
Aber so gilt: Allen Leuten Recht getan, ist keine Kunst, weil's jeder kann.
Der folgende Beitrag wurde am 04. 07. 2008, 19:31 Uhr von bleicher veröffentlicht.
Grüße,
> Status Code 400 zeugt von Fehlern auf der Protokollebene (zu der der request-body bestehend aus den Postdaten eigentlich nicht gehört, jedoch kann es in Deinem Fall daran liegen, dass CRLF in Deinen Daten vorkommt). Da wäre dann interessant, was genau beim Server angeliefert wird.
hab urlencode versuch t- half nicht
ist es überhaupt möglich die genau anfrage zu loggen?
also das was den server bekommt "von siner sicht uas" zu sehen?
MFG
bleicher
--
__________________________-
Menschen an sich , sind nicht schlecht - es sind nur ihre Taten (c).
http://www.sexgott-or-not.com/?test=428054
Der folgende Beitrag wurde am 04. 07. 2008, 21:41 Uhr von josh veröffentlicht.
Hallo,
> ist es überhaupt möglich die genau anfrage zu loggen?
> also das was den server bekommt "von siner sicht uas" zu sehen?
Mir fputs() kannst du genauso in Dateien schreiben. Setze einfach $fp temporär auf ein File-Handle, dann kannst du schauen, was du dem Server schickst. Den Teil, in dem du Daten empfängst, solltest du solange auskommentieren.
Gruß
Der folgende Beitrag wurde am 05. 07. 2008, 01:41 Uhr von bleicher veröffentlicht.
Grüße,
na ja - ich habe es umgebaut - fputs() "drückt" es nun nich tzeile für zeile, sondern als ein längeres string rein.
das ist dann der Log:
Anfrage:
POST /test.php HTTP/1.1
Connection: close
User-Agent: Mozilla/3.0 (Win95; I)
Content-Type: application/x-www-form-urlencoded
Content-Length: 18
user=test&wert=bla
Antwort:
HTTP/1.1 400 Bad Request
Date: Fri, 04 Jul 2008 23:39:36 GMT
Server: Apache
Content-Length: 226
Connection: close
Content-Type: text/html; charset=iso-8859-1
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>400 Bad Request</title>
</head><body>
<h1>Bad Request</h1>
<p>Your browser sent a request that this server could not understand.<br />
</p>
</body></html>
ich frage mich ob ich etwas total falsch gemacht habe ,(
MFG
bleicher
--
__________________________-
Menschen an sich , sind nicht schlecht - es sind nur ihre Taten (c).
http://www.sexgott-or-not.com/?test=428054
Der folgende Beitrag wurde am 05. 07. 2008, 12:43 Uhr von josh veröffentlicht.
Hallo,
> na ja - ich habe es umgebaut - fputs() "drückt" es nun nich tzeile für zeile, sondern als ein längeres string rein.
Das ist seltsam.
> Anfrage:
>
> POST /test.php HTTP/1.1
> Connection: close
> User-Agent: Mozilla/3.0 (Win95; I)
> Content-Type: application/x-www-form-urlencoded
> Content-Length: 18
Hier sollte eigentlich eine Leerzeile sein, aber ich hoffe einfach mal, dass sie durch das Problem mit fputs() verschwunden ist.
> user=test&wert=bla
> ich frage mich ob ich etwas total falsch gemacht habe ,(
Ja. Den Host-Header vergessen ;-)
Gruß
Der folgende Beitrag wurde am 05. 07. 2008, 13:20 Uhr von Edgar Ehritt veröffentlicht.
Und nochmal ich:
Bleicher, ich hatte nicht grundlos dahingetippt, dass es mich einigen Aufwand gekostet hat, Dir RFCs herauszusuchen. In solchen "Request for Comments" sind detaillierte Definitionen von Protokollen und/oder programmiertechnischen Grundlagen zu finden, ohne die Du verständnislos von anderen Beispielen, wie eben HTTP POST-Request, nur abkupfern kannst. Bitte mache Dich mit den Grundlagen dessen, was Du gedenkst (programmiertechnisch / allgemein) zu lösen, vertraut!
Gruß aus Berlin!
eddi
--
Der Verweis auf die Grundlagen Deines Handelns, ist das Joch zur Freiheit.
Aber so gilt: Allen Leuten Recht getan, ist keine Kunst, weil's jeder kann.
Der folgende Beitrag wurde am 05. 07. 2008, 14:49 Uhr von bleicher veröffentlicht.
Grüße,
auf jeden fall schau ich es mir an - aber nicht vor 22-28.07 >_<
MFG
bleicher
--
__________________________-
Menschen an sich , sind nicht schlecht - es sind nur ihre Taten (c).
http://www.sexgott-or-not.com/?test=428054
Der folgende Beitrag wurde am 05. 07. 2008, 13:21 Uhr von Edgar Ehritt veröffentlicht.
Hallo,
> > POST /test.php HTTP/1.1
> > Connection: close
> > User-Agent: Mozilla/3.0 (Win95; I)
> > Content-Type: application/x-www-form-urlencoded
> > Content-Length: 18
> > user=test&wert=bla
> Ja. Den Host-Header vergessen ;-)
desweiteren ist zwischen den Headern und dem Messagebody zwingend eine Leerzeile zu setzen (vgl. RFC 2616 Abs. 4.1 "Message Types"!).
Gruß aus Berlin!
eddi
--
Der Verweis auf die Grundlagen Deines Handelns, ist das Joch zur Freiheit.
Aber so gilt: Allen Leuten Recht getan, ist keine Kunst, weil's jeder kann.
© 1998-2013 SELFHTMLImpressumSoftware: Classic Forum 3.4