Отправляет email-рассылки с помощью сервиса Sendsay

RFpro.ru: Программирование на PHP

  Все выпуски  

RusFAQ.ru: Программирование на PHP


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / PHP

Выпуск № 703
от 03.07.2007, 16:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 417, Экспертов: 55
В номере:Вопросов: 1, Ответов: 2


Вопрос № 93190: Здраствуйте ! По книге Котерова/Костарева вывод программ C/C++ переназначен на html документ если они указаны как cgi скрипты , тогда почему они вместо того чтоб выполняться у меня выводится : "Сохранить файл script.cgi ? ". <...

Вопрос № 93.190
Здраствуйте ! По книге Котерова/Костарева
вывод программ C/C++ переназначен на html документ если они указаны как cgi скрипты , тогда почему они вместо того чтоб выполняться у меня выводится :
"Сохранить файл script.cgi ? ".

И ещё - когда страничка получает параметры - как их отобразить.
Например :
...example.exm?param1=HELLO¶m2=WORLD

я например хочу создать кнопку с value - "HELLO"
<input type=button value=param1>
Но вместо HELLO на кнопке - param1

Help пожалуста.
Отправлен: 28.06.2007, 12:37
Вопрос задал: James (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Egor
Здравствуйте, James !
Для того, чтобы ваша программа на C выполнялась (а не скачивалась) при обращении к странице, необходимо:
- скомпилировать ее и поместить получившийся код в директорию сайта
- настроить сервер на исполнение cgi скриптов в этой директории
Скомпилировать программу я думаю будет нетрудно, а вот по поводу настройки сервера я могу подсказать.
Эти настройки относятся к серверу Apache, и я предполагаю, что он установлен на локальном компьютере (localhost или127.0.0.1) и папка для веб-документов называется c:/server (если у вас другая, просто поменяйте путь).

Во-первых, скрипты обычно хранятся в отдельной диретории, как правило с именем cgi-bin, ее надо создать, если ее нет. в файл конфигурации Apache (httpd.conf) вписывается строка (или редактируется, если там есть похожая):
ScriptAlias /cgi-bin/ "C:/server/cgi-bin/"
Теперь по адресу http://localhost/cgi-bin/имяскрипта.cgi будет выполняться скрипт из папки c:/server/cgi-bin/.
Проверьте наличие строчки
AddHandler cgi-script .cgi .bat .exe
или аналогичной, определяющей расширения скриптов.

Также надо разрешить для этой папки выполнение скриптов. Для этого ищем строки вроде (или дописываем, если их нет):
<Directory "C:/server/cgi-bin">
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>
И в строке Options пишем Options ExecCGI (разрешает выполнение cgi-файлов).

Теперь помещенные в папку cgi-bin скрипты должны выполняться по запросу.

По поводу параметров:
при вызове вашей программы сервер устанавливает переменные окружения, среди которых есть переменная QUERY_STRING, она содержит строку вида param1=HELLO¶m2=WORLD
прочитать значение этой переменной можно функцией getenv():
char *query;
query = (char *) getenv("QUERY_STRING");
Далее вы должны разобрать строку на части, проанализировать, декодировать отдельные параметры. Можно делать это самому, можно найти готовую библиотеку.

Чтобы вывести код со значением переменной, надо использовать функцию printf(), вот пример:
char value[] = "Hello";
printf("<input type='button' value='%s'>", value);

Могу также посоветовать вам почитать хороший учебник по CGI и HTTP онлайн, расположенный по адресу http://www.intuit.ru/department/internet/cgi/
Также хочу сказать. возможно вы не знаете, что для написания скриптов существуют намного более простые языки вроде Perl или PHP, где все реализуется легче, и которые проще в освоении (правда, они медленнее чем C, но если вы не гонитесь а рекордной производительностью, можете об этом не беспокоиться).
Ответ отправил: Egor (статус: 4-ый класс)
Ответ отправлен: 28.06.2007, 15:29
Оценка за ответ: 5

Отвечает: BerdArt
Здравствуйте, James !
Первый вопрос не совсем понятен, а для кнопки код должен быть следующий:
<input type=button value=<?=$param1?>>
Ответ отправил: BerdArt (статус: 2-ой класс)
Ответ отправлен: 28.06.2007, 18:05
Оценка за ответ: 5


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Email: support@rusfaq.ru, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.52 от 02.05.2007
Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное