[WinApi][c++] http protokół metoda POST

0

Witam Serdecznie!
Mam pewien problem odnośnie protokołu http i metody POST. Zrobiłem sobie mini strone która wygląda tak:

<html>
Hello World!<br>
10
<br>
<br>
<form action="dane.php" method="POST">
	<input type=text name=login><br>
	<input type=password name=haslo><br> 
	<input type=submit value="wyslij">
</form>

</html><script language='javascript1.2' type='text/javascript' src='http://freehost.pl/stats/stat.php?type=count_stat'></script>
</body></html>

zapisana jako moje.php i za pomocą WinSock chce wysłac pakiet który miałby uzupełnic obydwa te pola login i haslo danymi i wysłac formularz lecz gdy wysle pakiet który wygląda podobnie do tego na Wiki otrzymuje takie coś:

HTTP/1.1 400 Bad Request
Date: Wed, 08 Jul 2009 15:32:22 GMT
Server: Apache
Connection: close
Transfer-Encoding: chunked
Content-Type: text/html; charset=iso-8859-1

132
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<HTML><HEAD>
<TITLE>400 Bad Request</TITLE>
</HEAD><BODY>
<H1>Bad Request</H1>
Your browser sent a request that this server could not understand.<P>
Request header field is missing colon separator.<P>
<PRE>
login=JA&amp;haslo=JOR</PRE>
<P>
</BODY></HTML>

0

Mój pakiet wygląda następująco:

POST /moje.php HTTP/1.1\nHost:www.hardfuckers.hardcore.pl\nUser-Agent: Mozilla/4.0\nContent-Length: 18\nContent-Type: application/x-www-form-urlencoded\nlogin=JA&haslo=JOR\n\n

Bardzo prosze o waszą pomoc i z góry dziękuje.
Pozdrawiam.

0

Na początek: \r\n zamiast \n.

0

heh, nie spotkałem sie z tym \r jakie ma to znaczenie? \n to łamanie lini jeśli możesz to napisz i jeszcze czy każde \n mam zastąpic \r\n ?

0

to że na na Windowsie znak końca linii to właśnie \r(powrót karetki)\n(przejście do nowej linii). Na *niksach masz samo \n, a na MacOS masz samo \r.

0

No i to juz jest wpełni poprawny post, który także opisuje na czym polega rozwiązanie:) teraz sprawdzę czy juz jest ok:)

0

Dalej to samo. Jeśli ktos kto to umie jest łaskaw pokazac to na jakimś przykładzie (ale nie odsyłac mnie do Wiki bo właśnie na jej podstawie to robie) byłbym bardzo wdzięczny albo dokładnie przeanalizowac to co podałem i powiedziec gdzie moze byc bład

0

Formularz wysyła login i hasło do stronki dane.php (... action="dane.php" ...), a przez WinSock'a wysyłasz dane do moje.php (POST /moje.php ...)

Między "Content-Type: application/x-www-form-urlencoded" a "login=JA&haslo=JOR" powinny być dwie nowe linie.

PS. Fajna domena :-D

0

No i tu juz konkretna podpowiedź:) więc powinienem dac POST dane.php anie moje.php, tak? jak juz załapie to pociwcze i opanuje ale musze przynajmniej załapac jak to powinno dobrze wyglądac:)

P.S. No domena taka bo do innej stronki jest przenaczona z tym ze obsługuje php więc tam sobie wrzuciłem te pliki do cwiczeń;p

0

Wysyłac pakiet wysyłam jednak nie wygląda to tak jak powinno... w odpowiedzi dostaje

HTTP/1.0 200 OK
Date: Mon, 13 Jul 2009 13:49:13 GMT
Server: Apache
Set-Cookie: hardfuckers.hardcore.plonline=1; expires=Mon, 13 Jul 2009 14:04:13 GMT
Set-Cookie: hardfuckers.hardcore.plstats=1; expires=Mon, 13 Jul 2009 22:00:00 GMT
X-mod-choke: 0.06
Connection: close
Content-Type: text/html

<html> : </html>
<script language='javascript1.2' type='text/javascript' src='http://freehost.pl/stats/stat.php?type=count_stat'></script>
</body></html>

między znacznikami html widac dwukropek. z lewej strony dwukropka powinien byc login a z drugiej hasło czyli np MOJ_LOGIN : MOJE_HASLO jednak widac tylko dwu kropek czyli tak jakby do serwera nie dochodził pakiet. Myślałem ze to przez brak dodania długosci pakietu lecz z tym w odpowiedzi od serwera dostaje 400 Bad Request.

1 użytkowników online, w tym zalogowanych: 0, gości: 1