Доброго времени суток! Пытаюсь отправить данные на сервер с помощью API на MASM32, сервер ответ не даёт, а когда захожу по адресу PHP скрипта: http://arnoldgames.areal.ru/a.php , то там то, что я только что послал не отображается. В чём ошибка подскажите пожалуйста? Код программы отправки запроса: Код (Text): .386 .model flat,stdcall option casemap:none include \masm32\include\windows.inc include \masm32\include\gdi32.inc include \masm32\include\user32.inc include \masm32\include\kernel32.inc include \masm32\include\wininet.inc include \masm32\macros\macros.asm includelib \masm32\lib\gdi32.lib includelib \masm32\lib\user32.lib includelib \masm32\lib\kernel32.lib includelib \masm32\lib\wininet.lib SendRequest PROTO :DWORD,:DWORD,:DWORD,:DWORD,:DWORD Main PROTO .data? hInstance dd ? .code SendRequest PROC uses esi edi ebx url:DWORD,pageAddr:DWORD,postheader:DWORD,returnBuf:DWORD,bufLen:DWORD local hInternet:DWORD,hConnect:DWORD,hRequest:DWORD local readed:DWORD invoke RtlZeroMemory,returnBuf,bufLen invoke InternetOpen,CTXT("hoverlees"),INTERNET_OPEN_TYPE_PRECONFIG,0,0,0 mov hInternet,eax invoke InternetConnect,hInternet,url,INTERNET_DEFAULT_HTTP_PORT,CTXT(0),0,INTERNET_SERVICE_HTTP,0,0 mov hConnect,eax invoke HttpOpenRequest,hConnect,CTXT("POST"),pageAddr,0,0,0,0,0 mov hRequest,eax invoke lstrlen,postheader mov ebx,eax invoke HttpSendRequest,hRequest,CTXT("Content-Type: application/x-www-form-urlencoded"),47,postheader,ebx invoke InternetReadFile,hRequest,returnBuf,bufLen,addr readed invoke InternetCloseHandle,hRequest invoke InternetCloseHandle,hConnect invoke InternetCloseHandle,hInternet mov eax,readed ret SendRequest ENDP start: invoke GetModuleHandle,NULL mov hInstance,eax call Main invoke ExitProcess,NULL Main PROC local retBuf[1000]:BYTE invoke SendRequest,CTXT("http://arnoldgames.areal.ru"),CTXT("/a.php"),CTXT("item1=yes&item2=no&item3=yes"),addr retBuf,1000 invoke MessageBox,0,addr retBuf,CTXT("The Server returns"),MB_ICONINFORMATION ret main ENDP end start Код PHP (a.php): Код (Text): <?php echo "Item1 is {$_POST["item1"]}\r\n"; echo "Item2 is {$_POST["item2"]}\r\n"; echo "Item3 is {$_POST["item3"]}\r\n"; ?>
все заработало, проблема была в указании сервера, нужно указывать его без http:// . Не могу сделать следующего, как закачать на сервер целиком файл с жёсткого диска? Что нужно передавать PHP скрипту, чтобы он его принял?? Нашёл 2 PHP скрипта, но так и не понял, куда передавать путь к файлу на жёстком диске? Подскажите пожалуйста. Код (Text): <?php $ip = getenv ('REMOTE_ADDR'); $date=date("j F, Y, g:i a"); $referer=getenv ('HTTP_REFERER'); $file_to_read = $_FILES['myfilevar']['tmp_name']; $file_data = implode("",file($file_to_read)); $fp = fopen("new_php.txt", 'w'); fwrite($fp,$file_data); fclose($fp); ?> Код (Text): <?php if ($prr) { $file = fopen ("new_php.txt", "w"); if(!file) {echo ("ошибка открытия1");} fclose($file); if (copy ($HTTP_POST_FILES ["prc"] ["tmp_name"], "new_php.txt")) {echo ("Файл скопирован");} else {echo ("ошибка открытия2");} } ?> <form action="price.php" method="post" enctype="multipart/form-data"> <input type="file" name="prc"> <input type="hidden" name="prr" value="1"> <input type="submit" value="Отправить"> </form>
djande Во втором примере вот это Код (Text): <form action="price.php" method="post" enctype="multipart/form-data"> <input type="file" name="prc"> <input type="hidden" name="prr" value="1"> <input type="submit" value="Отправить"> </form> помести в html-файл. В поле типа "file" указано имя загружаемого на сервер файла "prc". А вот это Код (Text): <?php if ($prr) { $file = fopen ("new_php.txt", "w"); if(!file) {echo ("ошибка открытия1");} fclose($file); if (copy ($HTTP_POST_FILES ["prc"] ["tmp_name"], "new_php.txt")) {echo ("Файл скопирован");} else {echo ("ошибка открытия2");} } ?> сохрани в php-файл "price.php". Он располагается на сервере и предназначен для сохранения загружаемого файла с именем "new_php.txt" и попытки его чтения.