Cgi. Как Работать С Внешней Программой?

Статус
Закрыто для дальнейших ответов.

pcsonic

Новичок
Регистрация
07.08.2007
Сообщения
2
Всем привет!

Буду очень признателен, если кто-нибудь немного поможет мне и просветит, возможно ли сделать то, что я хочу.

На простейшем примере задача выглядит так:

1. Есть HTML-форма, состоящая из 3-х полей: число А, число В, их сумма.
2. Есть скомпилированная программа, к примеру, на С++, которая считает сумму двух чисел. Берет числа из файла и пишет результат в файл.

Как сделать так, чтобы она складывала те самые числа из формы!!?

Понятно, что данные из формы не трудно записать в файл, а вот как запустить программу на выполнение, дождаться ее завершения и записать результат в 3-е поле формы вааще не понятно!

Заранее благодарю!
 

v0rbis

selfcoded
Регистрация
02.05.2005
Сообщения
923
Код:
system("/path-to-your-script/script.pl");
постите данные из формы на пхп например. пхп пишете в файл (раз так хотите.. но я бы лучше передал аргументом в вызов ко второму скрипту). потом запускаете внешний скрипт и пока он не отработает прога будет ждать. ибо чтоб не ждало надо замарачиваться на тему fork \ exec. тобишь дочерний поток. думаю вам это ни к чему.


и вообще это "быдлокодерство" когда несколько скриптов на _разных_ языках пересекаются. исключение только разве что вызовы к специфичным готовым решениям.
 

pcsonic

Новичок
Регистрация
07.08.2007
Сообщения
2
Дело не в том, что хочется так замарачиваться, а в том, что есть скомпилированные (*.exe) проги на Fortran и требуется заставить их работать из Web!

Проги очень "жесткие" и обычный комп их будет неделями считать, а смысл в том чтобы любой пользователь мог с ними работать из Web, а считаться они будут на кластере Академии Наук.

И все-таки я не пойму: допустим, с помощью PHP-скрипта считал данные из формы, записал их в файл и... Вот как теперь запустить *.exe, дождаться его завершения и вывести результат?\

Спасибо! :)
 

Fan

Member
Регистрация
11.10.2006
Сообщения
12
Дело не в том, что хочется так замарачиваться, а в том, что есть скомпилированные (*.exe) проги на Fortran и требуется заставить их работать из Web!

Проги очень "жесткие" и обычный комп их будет неделями считать, а смысл в том чтобы любой пользователь мог с ними работать из Web, а считаться они будут на кластере Академии Наук.

И все-таки я не пойму: допустим, с помощью PHP-скрипта считал данные из формы, записал их в файл и... Вот как теперь запустить *.exe, дождаться его завершения и вывести результат?\

Спасибо! :)
А зачем писать данные в файл?

Можно составить запрос к программе как к странице /cgi-bin/file.exe?a=value1&b=value2.... а в экзешнике их разгрести, выполнить нужные операции и отправить ответ в нужной форме.
 

v0rbis

selfcoded
Регистрация
02.05.2005
Сообщения
923
даа.. кластер РАН это круто. но "зачем насиловть труп" ? )) я про фортран.
 

medwoodu

Злобный модер
Регистрация
22.12.2005
Сообщения
1 418
у вас есть несколько вариантов,
1) самый простой это сделать загрузку на компьютер академии файлов с данными(пользователю возвращается уникальный id), после в планировщике заданий прописывается, если в папке есть файлы то их обработать. Дальше сделать страницу, проверяющую существование результата по id и соотв выдающую его.
2) сделать форму с поддержкой tcp/ip соединения, но php, perl и прочие для этого не подходят, тут либо C либо Java, можно на шарпе наверное.
P.S. 1способ правильнее имхо и с точки зрения безопасности и с точки зрения ресурсопотребления
стучитесь если что :)
 

Ivan

суперМодератор
Регистрация
10.01.2007
Сообщения
316
я бы попробовал использовать prototype.js
 

medwoodu

Злобный модер
Регистрация
22.12.2005
Сообщения
1 418
я бы попробовал использовать prototype.js
а он здесь при чем? там по любому нужна будет серверная прослойка, а аяксом или нет будет осуществлятся динамика, это уже другой вопрос.
 

Ivan

суперМодератор
Регистрация
10.01.2007
Сообщения
316
И все-таки я не пойму: допустим, с помощью PHP-скрипта считал данные из формы, записал их в файл и... Вот как теперь запустить *.exe, дождаться его завершения и вывести результат?\
на тему "дождаться и вывести результат"
на сервере, конечно, д.б. скрипт запускающий .exe и возвращяющий результат.
 
Статус
Закрыто для дальнейших ответов.
Верх Низ