передача параметров в cgi скрипт
Требуется без использования броузера (из своего приложения или просто из коммандной строки) запускать это cgi приложение, передавая ему требуемые параметры (их имена известны), а потом ловить его вывод.
Есть cgi приложение в скомпилированном виде. Параметры ему передаются методом post.
Требуется без использования броузера (из своего приложения или просто из коммандной строки) запускать это cgi приложение, передавая ему требуемые параметры (их имена известны), а потом ловить его вывод.
Через API можно юзать Pipe
Через PHP(и через Perl тоже) открываешь CGI на чтение, т.е читаешь его вывод
Через API можно юзать Pipe
Через PHP(и через Perl тоже) открываешь CGI на чтение, т.е читаешь его вывод
То что трубку открывать можно - это понятно. Вопрос в том, что туда писать ...
Свое приложение пишется на С под Линукс
То что трубку открывать можно - это понятно. Вопрос в том, что туда писать ...
Свое приложение пишется на С под Линукс
Зачем туда что-то писать?
Попробуй открыть файл сразу с query:
CreatePipe("file.cgi?p1=1");
Зачем туда что-то писать?
Попробуй открыть файл сразу с query:
CreatePipe("file.cgi?p1=1");
POST
POST
Это ***дец, извиняюсь за выражение.
POST - это то, что цыгыя получает на stdin.
В чем вопрос - как подавать на stdin или в каком формате?
POST - это то, что цыгыя получает на stdin.
В чем вопрос - как подавать на stdin или в каком формате?
Действительно, я не совсем четко сформулировал изначально проблему.
Понятно, что на стандартный ввод это идет к cgi программе, вопрос и есть в формате.
В предыдущем посте указывалось в формате метода GET. То что пишется cgi на вход в таком виде - достаточно очевидно - это можно прочитать в строке адреса броузера. А вот в каком виде передаются данные методом POST - непонятно.
А вот в каком виде передаются данные методом POST - непонятно.
Пиши цыгыю, которая выводит в броузер содержимое stdin. Ваяй html с нужными формами и передавай через него параметры на скрипт - вся любовь. В свое время я именно так и делал. Где блин дух экспериментаторства? :D
Действительно, я не совсем четко сформулировал изначально проблему.
Понятно, что на стандартный ввод это идет к cgi программе, вопрос и есть в формате.
В предыдущем посте указывалось в формате метода GET. То что пишется cgi на вход в таком виде - достаточно очевидно - это можно прочитать в строке адреса броузера. А вот в каком виде передаются данные методом POST - непонятно
Тогда открывай сокет и пиши в него
POST addr.com/s.php?a=1
Смотри w3c.org про формат заголовков т.к я не помню что там надо послать в начале
Тогда открывай сокет и пиши в него
POST addr.com/s.php?a=1
Обман с особым цинизмом.
Создается форма(html) в которой забиваются все необходимые параметры , в качестве экшена - адрес цыгыи, которая читает со стандартного ина и выводит в стандартный оут, то есть в браузер. Где собственно и можно наблюдать в каком виде данные передаются постом. Сокеты тут ни при делах. Вот.
Обман с особым цинизмом.
Создается форма(html) в которой забиваются все необходимые параметры , в качестве экшена - адрес цыгыи, которая читает со стандартного ина и выводит в стандартный оут, то есть в браузер. Где собственно и можно наблюдать в каком виде данные передаются постом. Сокеты тут ни при делах
А как тогда браузеры общаются? Через формы? ))
Твой метод - это "обман с особым цинизмом", т.к я просто обхожу создание формы и сразу посылаю запрос серверу
http://www.w3.org/TR/html4/interact/forms.html#form-data-set
Там же есть линки на mime типы и т.п. и т.д., что так же пригодится в этом вопросе.
Просто через Headers передавать в данном случае данные легче(ИМНО)
Как ты например через XML без браузера передашь параметры в CGI? ))
Кстати вот полный заголовок(так вроде):
Header("POST /CGIS.cgi HTTP 1.1")
Header("User-agent: Mozilla 4.1");
и т.д
POST может быть в разном формате. Формат задается с помощью аттрибута enctype тега FORM.
Есть два основных энктайпа. Обычный - по умолчанию. Не помню как называется.
А есть multipart/form-data. Его разбирать сложнее. С его помощью закачиваются файлы. Вместо того чтобы рыть тонны на w3c можно просто запустить сниффер.
Что касается первого энктайпа (который по умолчнию) то он ничем не отличается от GET, просто подается на stdin
пример:
Host: codenet.ru
Connection: close
s=56&v=54&d=%C0%C0%C0%C0%C0%C0
В текстовое поле впиши:
POST адрес_сги-скрипта HTTP/1.0
данные для передачи (переменная=значение&etc)
Адрес скрипта полностью (http:// префикс и имя сервера) указывай
В поле Имя сервера укажи имя хоста без www и http://
p.s. можешь хелп в скрипте почитать (правда он старый и будет только в осле пахать.. ваще яваскрипт только в осле попашет.. писал давно, переделывать в лом)
http://progers.ru/files/cat5/subcat59/ - скрипт можешь скачать тут...
Твой метод - это "обман с особым цинизмом", т.к я просто обхожу создание формы и сразу посылаю запрос серверу
Ты вопрос читал вообще? Человеку надо узнать формат - я ему объясняю как.
Причем здесь сервер? есть скрипт и есть прилада, которая выставляет окружение и запускает цыгыю, то есть сама выступает в роли сервера. Соответственно никаких сокетов и прочей дряни - оно здесь просто не надо.
Видимо на форуме народ уже не курит - отрава по ходу более крепкая гуляет.
Видимо на форуме народ уже не курит - отрава по ходу более крепкая гуляет.
Согласен )))