2011-02-08 1 views
1

Предположим, у меня есть локальная веб-страница, которая при нажатии кнопки выполняет программу на C. Я уже могу это сделать. Проблема в том, что эта программа выводит журналы и требует ввода от пользователя. Мой вопрос заключается в следующем: как я могу отображать окно, подобное bash, и запускать через него эту программу, так что вывод и вход просматриваются через экран?Как выполнить интерактивную программу оболочки с веб-страницы PHP

+0

Не был бы SSH более безопасным/безопасным/практичным/легким способом достижения этого? – drudge

+0

Почему бы не разобрать вывод программы на php и показать на экране (браузер). Я хотел бы придерживаться C распространять полную программу как c (exe), каково значение в php и C? программа c должна быть распределена пользователю в любом случае. –

+0

, возможно, зная, что делает c и что делает php, поможет –

ответ

0

Я разрабатываю плагин для jQuery "Terminal Emulator", вы можете это проверить. Если вы пишете свою C-программу как JSON-RPC, вы можете создать свой терминал с одной строкой javascript.

Другое решение - не использовать PHP вообще и создавать свой код как CGI, написанный на C или даже в Bash.

Update: Вы можете изменить программу, чтобы быть CGI скрипт

int main() { 
    printf("Content-Type: text/plain\n\n"); 
    // code of your program here 
} 

и поместить его в CGI-BIN каталога и запустить его через браузер http://yourserver.com/cgi-bin/program он отображает выход в браузере

+0

То, что вы предложили, не соответствует тому, что я думал. Я просто хотел открыть терминал в другом окне. Это не должно было быть на веб-странице. Хотя мне очень нравится ваша идея. это для моего диссертационного проекта, поэтому, если я смогу это сделать за короткое время, я сделаю это. В любом случае, знаете ли вы, как это сделать, как я думал? – gvalero87

+0

Вы можете использовать этот фрагмент http://wklej.org/id/472868/, но он не обрабатывает перемещение каталога, он просто выполняет код из «QUERY_STRING», и он не защищен, а пароль не проверяется. – jcubic

0

Возможно, вам может использовать ajaxterm и указать программу, которую вы хотите запустить в качестве оболочки:

ajaxterm.py --command=/your/command --port=yourfavoriteport 

Вы можете перенаправить пользователя на указанный порт или отобразить терминал через iframe.