I have Apache2 server and PHP4 installed on my local computer for educational purposes. I have the index2.php in my http server directory wich prints the myvar variables value. Код (Text): <?php echo '<html><head><title></title></head><body><p>'; echo $_POST["myvar"]; echo '</p></body></html>'; ?> This thing is working fine when I post data from the index2.htm file, Код (Text): <html><head><title>My PHP Query Page</title></head><body><br><br><center> <form action="index2.php" method="post] <p> <input type="text" name="myvar] <input type="submit" value="Submit Query] <input type="reset" value=" Reset ] </p></form> </center> </body></html> but it doesn't work when I try to post some data using HttpOpenRequest(...), HttpSendRequest(...) WinINET APIs. Код (Text): #include <windows.h> #include <wininet.h> #include <iostream> using std::cout; void main() { HINTERNET hInternet = InternetOpen( "MyAgent", INTERNET_OPEN_TYPE_DIRECT, NULL, NULL,0); cout<<"hInternet="<<(int)hInternet<<"\nGetLastError()="<<GetLastError( )<<"\n\n"; HINTERNET hConnect = InternetConnect( hInternet, "127.0.0.1", 80, NULL, NULL, INTERNET_SERVICE_HTTP, 0, 0); cout<<"hConnect="<<(int)hConnect<<"\nGetLastError()="<<GetLastError() <<"\n\n"; LPCTSTR AcceptTypes[] = { TEXT("*/*"), NULL}; HINTERNET hRequest = HttpOpenRequest( hConnect, "POST", "/index2.php", NULL, NULL, AcceptTypes, INTERNET_FLAG_KEEP_CONNECTION | INTERNET_FLAG_RELOAD | INTERNET_FLAG_PRAGMA_NOCACHE, 0); cout<<"hRequest="<<(int)hRequest<<"\nGetLastError()="<<GetLastError() <<"\n\n"; char optData[] = "?myvar=31"; BOOL retRes = HttpSendRequest( hRequest, 0, 0, optData, lstrlen(optData) ); cout<<"retRes="<<(int)retRes<<"\nGetLastError()="<<GetLastError()<<"\ n\n"; auto char buffer[4096]; auto DWORD uLong; if(InternetReadFile(hRequest,buffer,4096,&uLong) == FALSE){ MessageBox(0,"ERROR InternetReadFile returns NULL","ERROR",0); return; } for(UINT i=0;i<uLong;i++){ cout<<buffer[i]; } Sleep(20000); } The server respond like it doesn't receive any data. Код (Text): <html><head><title></title></head><body><p><br> <b>Warning</b>: Undefined index: myvar in <b>D:\!!HTTP!!\WWW\index2.php</b> on line <b>4</b><br> </p></body></html> I posted the optData string with the InternetSendRequest(...) optData[] = "?myvar=31"; is it right ? what I made wrong ? Regards, Aram
I'm afraid, I am. You need to encode the POST data in a special way. Review the HTTP RFC from the link above. BTW, why not using GET in your PHP script? It's a lot easier.
Because I am not using my .php file. Thanks a lot guys for help and information. For those who interested I got some link http://forum.sources.ru/index.php?showtopic=94458&st=0&