LINUX.ORG.RU

учебники по CGI на Си


0

2

Подскажите какую нибудь литературу или самоучитель для написания CGI сценариев на Си, ну чтобы побольше примеров было. т.к. с Си я немного знаком а переучиваться на пхп не охота.


>учебники по CGI на Си

Подумал «с каких это пор учебники на С пишут, а не на русском...»

З.Ы. Сначала в общем про цги почитай, на той же википедии. Да и нафига тебе цги скрипты, если ты не знаешь хтмл или пхп?

Zhbert ★★★★★
()
Ответ на: комментарий от vadak

Можно. А еще некоторые пишут операционки на ассемблере.

svu ★★★★★
()
Ответ на: комментарий от vadak

Не, я вебом особо не увлекаюсь, прикладистикой только.

Zhbert ★★★★★
()

была какая-то libcgi лет пять назад последний раз видел. погугли. ну а принцип работы как и с любым другим языком через cgi.

Anoxemian ★★★★★
()

> а переучиваться на пхп не охота.

Можешь выучить Perl, тот кто хорошо знаком с Си, легко осваивает Perl. К тому же CGI.pm очень удобный для написания сценариев.

kst
()

Я все свои CGI на сях пишу. Сам когда-то искал учебники, но так ничего и не нашел. В принципе-то ничего особого и не нужно: только написать функции для разбора POST/GET запросов, получения информации о куках и переменных. Например,

char* get_qs_param(char *param){
	char *tok, *val, *par, *str, *ret = NULL;
	if(!qs) return NULL;
	str = strdup(qs);
	tok = strtok(str, "& \n");
	do{
		if((val = strchr(tok, '=')) == NULL) continue;
		*val++ = '\0';
		par = tok;
		if(strcasecmp(par, param)==0){
			if( strlen(val) > 0 )
				ret = strdup(val);
			break;
		}
	}while((tok = strtok(NULL, "& \n"))!=NULL);
	free(str);
	return ret;
}

Eddy_Em ☆☆☆☆☆
()

> Си я немного знаком а переучиваться на пхп не охота.

Спасибо, поднял настроение. «Я не хочу с вами знакомится, потому что забуду свое имя если запомню ваше».

anonymous
()
Ответ на: комментарий от Eddy_Em

+100500, только лучше бы не CGI, а сразу порт слушать и самому отвечать, как это делают всякие популярные твистеды

simple_best_world_web_master
()

Котеров Д.В., Костарёв А.Ф. PHP5 в подлиннике. СПб.: БХВ-Петербург, 2005. Глава 3: CGI изнутри; стр. 76 - 107 - вся глава посвящена написанию CGI на C.

josephson ★★
()
Ответ на: комментарий от zakot

Скачал, посмотрел: что-то там ничего интересного. Все это и так можно найти по первым трем ссылкам в гугле (да и рассматриваются, в основном, очень элементарные вещи, которые самому можно безо всяких гуглов быстро написать).

И да, в этой главе нет важных вещей: например, как из тела POST-запроса выдрать переданный клиентом файл (я, когда понадобилось написать http-файлменеджер, и в гугле ничего подобного не нашел, пришлось делать самому).

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

Это первое что я вспомнил по С и CGI, для новичка в этом вопросе, статья в книге подойдет. Ну а дальше надо совершенствоваться.

zakot
()
Ответ на: комментарий от zakot

Долгие поиски в гугле привели меня к выводу, что CGI на сях - очень нераспространенная вещь, и все здесь надо делать самому. Вот и нарабатываю постепенно полезные функции...

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

Да уж решение редкое, можно потом тебе будет и книгу написать о том как это сделать. Я только в общих чертах такое представляю, а сам никогда такого не выкидывал.

zakot
()
Ответ на: комментарий от zakot

Да у меня просто вся работа связана с железом, которым нужно дистанционно управлять. А веб-интерфейс в этом случае - самая лучшая штука.

Насчет книгу написать - мануалов я уже (для себя лично) наделал предостаточно, но вот сделать из них что-нибудь приличное никак руки не доходят. Если vadak интересно, есть функции разбора строки запроса; выделения файлов, посланных через http; https-аутентификации и авторизации; передачи видео; формирования изображений в разных форматах (при помощи gnuplot или gdlib).

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

> И да, в этой главе нет важных вещей: например, как из тела POST-запроса выдрать переданный клиентом файл

Это надо читать в RFC2616

Да у меня просто вся работа связана с железом, которым нужно дистанционно управлять. А веб-интерфейс в этом случае - самая лучшая штука.

Прозреваю очень веселый аплоад с мобильных устройств, где распространен Transfer-Encoding: chunked

simple_best_world_web_master
()

Решето же будет. В локальном приложении на С уязвимость не так опасна, а вот если это приложение смотрит мордой в интернет, то лучше написать его на чем-нибудь понадежнее.

Nakgidveef
()
Ответ на: комментарий от Nakgidveef

Где будет решето ?? Надежность любого приложения зависит от угла кривизны рук создателя

zakot
()

к примеру крутится готовый lighttpd, нужно дописать что либо, можно и scgi интерфейс создать.

Chu
()
Ответ на: комментарий от enep

Нет формирования заголовков, ничего работать не будет. Надо хотя бы так:

#include <stdio.h> 
 int main(int argc,char* argv) { 
   printf("Content-type: text/html; charset=koi8-r\n\n");
   printf("Hello from CGI");
 }

Eddy_Em ☆☆☆☆☆
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.