Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Программирование под Unix/Linux > CGI & C++


Автор: max-@ 21.1.2005, 10:46
Кинте кто-нибудь пример вэб программирования на С++ в юникс.......

например чтобы при обрашении к адресу http://***.ru/cgi-gin/index.out выдавал html

Код:
<html>
<head><title></title></head>
<body>
<table>
<tr><td align=center valign=middle>Hello!!!</td></tr>
</table>
</body>
</html>

Автор: Sun 21.1.2005, 11:41
Код

#include <stdio.h>

int main(char** argc, int argv)
{
puts("Content-type: text/html\n");
puts("<html><head><title></title></head><body><table><tr><td align=center valign=middle>Hello!!!</td></tr></table></body></html>");
return 0;
}

Автор: max-@ 21.1.2005, 14:21
Ха клас так просто я то думал там используются специальные методы.............
Огромное спасибо Sun

Автор: rMaveric 21.1.2005, 19:46
Ответ дан. Но поясню еще немного.

CGI то интерфейс сервера. При этом ты можешь выполнять любое приложение (бинарное или скрипт), а стандартным выходом является буфер, который в последствии передается браузеру. Все.

Автор: max-@ 23.1.2005, 10:25
Еще вопрос как передать целую страницу через бинарник
например загружаю страничку http://***.ru/cgi-gin/index?href=main.htm

чтобы броузер загрузил страничку main.htm но в строке адреса показывал адрес бинарника и его параметров(http://***.ru/cgi-gin/index?href=main.htm)

и еще как передать параметры в с++ через http протокол

Автор: rMaveric 23.1.2005, 12:09
2 max-@
Пожалуйста создавай Новые топики для решеня новых вопросов, т.к. это поможет потом кому нибуть найти ответ на его вопрос.

Теперь конкретно по вопросу. Для того чтобы отобразить страничку не рекомендую в качестве параметра указывать путь к ней. Т.к. это снижение безопасности. Любой человек может запросить любой файл доступ к которому будет открыт для вебсервера. (а это непозволительно)...

Теперь о технологии. Передаешь параметр. Считуешь весь файл и выводишь файл на стандартный поток. все.


И наконец о параметрах. Все использует стандартные функции языка С. Просто посмотри что-там у тея хранится в argv и argc

Автор: max-@ 23.1.2005, 16:24
Я посмотрел там только полный путьк скрипту
во как это я делал:
Код

for(int i=0; i<argc, i++){
  puts(argv[i]);
}

Автор: Sun 24.1.2005, 12:08
Параметры нужно вычитывать из переменных окружения либо из входного потока. Для метода GET параметры вычитываются из QUERY_STRING. Для POST из stdin. Здесь подробнее:
http://www.best-appz.com/forum/lofiversion/index.php/t336.html

Автор: max-@ 28.1.2005, 13:10
Дааааа С++ не создан для Web.....если только есть библиотека для этого

На PHP сделал тоже самое за 2ч. а на С++ за 3 дня......

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)