Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите найти ошибку в CGI программе на С! CGI Программа на C не работает 
:(
    Опции темы
WhiteVM
Дата 27.6.2005, 21:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 27.6.2005

Репутация: нет
Всего: нет



Мужики, кто может, спасайте! Срочно надо сделать программу, а у меня не получается никак! Она нужна срочно! И если можно, дайте ещё ссылочки на готовые задания по такого рода лабам.

Итак, вот задание:

Написать HTML страницу и CGI программу. С их помощью ввести два положительных целых числа. Вернуть их наименьшее общее кратное. Надо писать CGI на С.

Вот что натворил я. Уже ничё не соображаю.... Устал. А прога не пашет.

Код

#include <string.h>
#include <stdlib.h>
#include <stdio.h>
//Функция извлечения из строки параметров p2 значения параметра с именем p1
char* param(const char* p1, char *p2) //xxx* тип возврашщ знач char
{
char *temp, *beg;
unsigned int i;

int dlin = 0;
temp = 0;
if (p2 == 0) return 0; //извлеч из строки параметров
i = strlen(p1) + 1; //длина параметров +1
beg = strstr(p2, p1); // в строке параетров ищет имя параметраp1
if (beg == 0) return 0;
while ((beg[i]!='&') && (i!=strlen(beg))) { dlin++; i++; }// пока не дойдём до след парам и i не равялось beg. Он считает длину значеиня парам
if (dlin != 0)
{
temp = new char[dlin+1]; //выделяем пам\т под значения параметров
strncpy(temp, &beg[strlen(p1)+1], dlin); // мы в temp из адреса beg помещаем символы длиной dlin +1
temp[dlin]= 0; // делаем конец строки
}
return temp;
}

void main()
{
int a;
int b;
int f;
int i,min,number;
int countA;
int countB;
char *params; // Строка параметров
char *paramslength = getenv ("CONTENT_LENGTH");
int iparamslength ; //длинна параметров в иде числа
iparamslength = atoi(paramslength);
if (paramslength>0) params=new char[iparamslength+1];
scanf ("%S",params);
if (param("number",params)!=0) //печатаем результаты только если заданы параметры
{
number=atoi(param("number",params));
//f=1;
}
//else f=0;

printf("<HTML><HEAD><TITLE> Наименьшее общее кратное </TITLE></HEAD>");
printf("</BODY>");
printf("Результат: <UL>");

if (a<b) min=a;
else min=b;

for(i=0;i<min;i++)
countA == a/i;
countB == b/i;

if ( countA == a%i==0 && countB == b%i==0 )
{
printf("%d",i);
}
}

printf("</UL><P>");
printf("</body></html>");
if (iparamslength>0) delete[] params; //Освобождение памяти

}

PM MAIL   Вверх
setq
Дата 28.6.2005, 10:00 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











возможно я ошибаюсь, но по-моему перед первым выводом данных CGI программа должна вывести на stdout так называемый заголовок - одну или несколько строк наподобие
Код
Content-Type: text/html
загляни в любой скрипт на любом языке - найдёшь нечто подобное. после заголовка на stdout необходимо напечатать пустую строку.
  Вверх
JoyEx
Дата 28.6.2005, 17:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дядя
**


Профиль
Группа: Участник
Сообщений: 323
Регистрация: 21.6.2005
Где: Москва, РФ

Репутация: нет
Всего: 12



Самое главное отправить - HTTP/1.0 200

Код

      printf("HTTP/1.0 200 Ok\r\nContent-Type: test/html\r\n\r\n");
....
....




--------------------
Если ты уже никого не боишься, значит ты самый страшный 
PM IM ICQ AOL YIM MSN   Вверх
WhiteVM
Дата 6.7.2005, 00:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 27.6.2005

Репутация: нет
Всего: нет



ПРогу сдал. Всем спасибо... smile
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0530 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.