Посылка файла методом post

chama

Новичок
Посылка файла методом post

прочитал статью http://detail.phpclub.ru/article/http_request
Покопался на форуме. Нашёл и изменил функцию.
PHP:
function sendPostQuery($host,$path,$data){ 
    $boundary=md5(mktime()); 
    $fp = fsockopen($host,80,$errno,$errstr,15); 
    if(!$fp){echo "Error: ".$errstr; return;}  
    fputs($fp, "POST http://www.$host$path HTTP/1.0\r\n");
    fputs($fp, "Host: www.$host\r\n");
    fputs($fp, "Referer: http://www.$host/scripts/update/update.php\r\n"); 
    fputs($fp, "Content-Type: multipart/form-data");
    fputs($fp, "; boundary=$boundary\r\n"); 
    fputs($fp, "Content-length: " . strlen($data) . "\r\n");
    fputs($fp, "\r\n");
    fputs($fp, "--$boundary\r\n");
    fputs($fp, 'Content-Disposition: form-data; name="vari"\r\n');
    fputs($fp, "\r\n"); 
    fputs($fp, "$data\r\n");  
    fputs($fp, "--$boundary\r\n");
    fputs($fp, 'Content-Disposition: form-data; name="vari_file";filename="1.txt"\r\n');
    fputs($fp, "Content-Type: application/octet-stream\r\n");
    fputs($fp, "Content-Transfer-Encoding: binary\r\n");
    fputs($fp, "\r\n"); 
    fputs($fp, "$data\r\n");  
    fputs($fp, "--$boundary--\r\n");  
     
    $output=""; 
    while (!feof($fp)){$output .= fgets($fp,128);} 
    fclose($fp); 
    return $output; 
}
в файле http://www$host$path написал
PHP:
phpinfo();
но не получаю не переменную vari не переменную vari_file
 

chama

Новичок
Просто есть желдание разобраться в POST(поэтому Pear не к чему). Вроде делаю всё правильно, но всё равно где то ошибка которую не могу найти.
 

SiMM

Новичок
> Вроде делаю всё правильно, но всё равно где то ошибка которую не могу найти.
А почему ты решил, что у тебя есть ошибка?
Неужели нельзя нормально описать проблему, надо обязательно чтобы на протяжении десятка-другого постов её из тебя клещами изымали?
 

chama

Новичок
вроде всё описал
в файле http://www$host$path написал
phpinfo();
но не получаю не переменную vari не переменную vari_file

смотрю в php variables и не нахоожу ничего похоже на посланнцю перенную и файл.
 

chama

Новичок
Все эти ссылки читал. Программа для просмотра для Осла давно уже стоит. А ещё не могу найти програмку для формирования http заголовков из под винды(для отправки их на сервер).

p.s. А насчёт а по коду - как-то глупо отделять www от имени хоста - просто в комментариях к статье был спор ставить http://www или нет, поэтому я пробовал и так и иначе.
 

SiMM

Новичок
> Все эти ссылки читал.
Тогда как минимум - какого лешего ты пишешь
PHP:
fputs($fp, 'Content-Disposition: form-data; name="vari"\r\n');
// ...
fputs($fp, 'Content-Disposition: form-data; name="vari_file";filename="1.txt"\r\n');
? Я бы вообще всё загонял в одну строку, а потом делал fputs - в целях отладки - гораздо удобнее.
 

chama

Новичок
vari это просто переменная с содержимым $data, а vari_file это переменая посланная как файл то же с содержимым $data.
 

SiMM

Новичок
chama, я не спрашивал, что такое vari
[m]language.types.string[/m], если не помогает - иди читай про отладку ещё раз.
 

chama

Новичок
я просто не видел разницы между
PHP:
fputs($fp, 'Content-Disposition: form-data; name="vari"\r\n'); 
// ... 
fputs($fp, 'Content-Disposition: form-data; name="vari_file";filename="1.txt"\r\n');
можно заменить на
PHP:
fputs($fp, "Content-Disposition: form-data; name=\"vari\"\r\n"); 
// ... 
fputs($fp, 'Content-Disposition: form-data; name=\"vari_file\";filename=\"1.txt\"\r\n');
исправил теперь лучше теперь начала создаваться пустая переменная _POST["new"]
 

chama

Новичок
извиняюсь послал неправильно

PHP:
fputs($fp, "Content-Disposition: form-data; name=\"vari_file\";filename=\"1.txt\"\r\n");
 
Сверху