C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Работа с CGI, Посоветуйте подход в решении задачи
Лена
Отправлено: 21.06.2005, 10:34


Мастер участка

Группа: Участник
Сообщений: 501



На сервере имеется таблица с ценами. Надо организовать следующее:
посетитель сайта выбирает нужные ему товары, нажимает кнопку и получат окно с расчетом общей стоимости выбранных товаров. Как легче всего реализовать такую технологию? Что использовать JavaScript, или с помощью Builder 6 реализовать CGI приложение, или еще что? В каком правильном направлении начать двигаться (задача в дальнейшем может усложняться) для решения подобных задач?
AVC
Отправлено: 21.06.2005, 11:05


Ветеран

Группа: Модератор
Сообщений: 1583



Если сервер не в вашем распоряжении, то придется пользоваться средствами, разрешенными у владельца сервера. Скорее всего php, perl. JavaScript доступен, практически, всегда. С моей точки зрения использование CGI для такой мелкой проблемы — излишне. И вообще использование exe CGI проблематично, так как exe зависит от ОС.
Использовать Builder CGI можно только если "сервер у вас под столом".
Лена
Отправлено: 21.06.2005, 12:50


Мастер участка

Группа: Участник
Сообщений: 501



Это наш сервер (можно сказать, что под столом) smile.gif
AVC
Отправлено: 21.06.2005, 13:07


Ветеран

Группа: Модератор
Сообщений: 1583



И он стоит на Win? Вам повезло. Ну тогда вы можете себе позволить и Builder CGI и динамичскую генерацию страниц эти CGI.
Иван
Отправлено: 21.06.2005, 13:10


Машинист паровоза

Группа: Участник
Сообщений: 207



сервер на Windows? насколько это надежно?
если сравнить с Linux/Unix
Лена
Отправлено: 21.06.2005, 13:46


Мастер участка

Группа: Участник
Сообщений: 501



Сервер нашей конторы стоит на Linux.
Иван
Отправлено: 21.06.2005, 14:34


Машинист паровоза

Группа: Участник
Сообщений: 207



Ну тогда, если я все правильно понял Вам нужно писать на Kylix...
Лена
Отправлено: 21.06.2005, 15:51


Мастер участка

Группа: Участник
Сообщений: 501



А можно ли реализовать СGI приложение в Builder 6 используя компонеты СLX в случае если сервер Linux?
AVC
Отправлено: 21.06.2005, 16:12


Ветеран

Группа: Модератор
Сообщений: 1583



Скорее всего нет. CGI (ISAPI) это расширение сервера и, следовательно, выполняется в рамках его ОС (процесса для ?SAPI).
Лена
Отправлено: 21.06.2005, 16:29


Мастер участка

Группа: Участник
Сообщений: 501



Спасибо.
В остатке остается JavaScript. Правда если задача будет усложняться, то и проблем будет много. sad.gif
О JavaScript имею не большое представление, а вот php, perl, вообще не знаю. sad.gif
Иван
Отправлено: 21.06.2005, 16:35


Машинист паровоза

Группа: Участник
Сообщений: 207



с perl не знаком вообще, а с php думаю проблем не будет, на С он похож.
AVC
Отправлено: 21.06.2005, 16:39


Ветеран

Группа: Модератор
Сообщений: 1583



А JavaScript очень напоминает C интерпритатор. Часто писал автоматически привычные c конструкции и приятно удивлялся их работоспособности.
Иван
Отправлено: 21.06.2005, 16:45


Машинист паровоза

Группа: Участник
Сообщений: 207



QUOTE (AVC @ 21/06/2005, 16:39)
А JavaScript очень напоминает C интерпритатор. Часто писал автоматически привычные c конструкции и приятно удивлялся их работоспособности.

Как то надо было создать pdf документ с кнопочками и edit' ами, там тоже JavaScrypt. — тоже интуитивно писал скрипты smile.gif со второго третьего раза работали
Treumer
Отправлено: 21.06.2005, 17:31


Станционный диспетчер

Группа: Участник
Сообщений: 92



QUOTE (Лена @ 21/06/2005, 16:29)
Спасибо.
В остатке остается JavaScript. Правда если задача будет усложняться, то и проблем будет много. sad.gif
О JavaScript имею не большое представление, а вот php, perl, вообще не знаю. sad.gif

JavaScript конечно сильно вырос с тех пор, как я его использовал..
Но тем не менее это малопригодное для обработки мало-мальски крупных объемов данных средство.
К тому же все обрабатываемые данные лежат в этом случае на клиенте — т.е. в Эксплорере (кстати, JavaScript для эксплорера и других браузеров не хило так отличется объектной моделью, что приводит к несовместимости на разных браузерах) и будут потеряны если Эксплорер "грохнется"..
Ну и прочие недостатки... К примеру — отсутсвие связи с БД, чтобы туда что-то записать нужно подготовить на JavaScript данные и отослать их как-то на сервер...

Проще всего начинать писать на РНР, т.к. (по сравнению с Perl) удобно отлаживать.

Вообще-то, насколько я понимаю, есть Веб-сервисы на Яве — может тогда уж лучше на ней писать ? Хотя по сравнению с РНР они более ресурсо-прожорливые...

Отредактировано Treumer — 22/06/2005, 09:53
Valdemar
Отправлено: 22.06.2005, 07:55


Мастер участка

Группа: Участник
Сообщений: 433



Я тоже советую использовать РНР, тем более если вы знаете С++ (они сильно похожи). У меня, когда возникла необходимость разрабртки проекта под Web, больших проблем с РНР не возникло. Для работы с базами данных в РНР есть дополнительные библиотеки, которые можно подключить, а поддержка MySQL включена в ядро РНР.
Для РНР есть много редакторов, как платных так и бесплатных. Некоторые позволяют отлаживать программу. Сам я использую PHP Expert Editor.
Лена
Отправлено: 22.06.2005, 08:34


Мастер участка

Группа: Участник
Сообщений: 501



Спасибо всем за советы.
Просто задачка маленькая, неизвестно или будет ее дальнейшее развитие, поэтому хотелось обойтись средствами C++ Builder 6, а не изучать новый для меня язык программирования (просто нет времени).

Значит окончательное резюме такое:
нельзя в среде C++ Builder 6 написать CGI приложение, используя межплотформенные компоненты CLX?
timson
Отправлено: 22.06.2005, 16:41


Станционный диспетчер

Группа: Участник
Сообщений: 82



сори за офтоп.

Лена просто красавица!!! еще умница.. =)))
Лена
Отправлено: 23.06.2005, 08:17


Мастер участка

Группа: Участник
Сообщений: 501



Спасибо за комплемент, но если бы я была умница, то я бы отвечала на вопросы, а не задавала бы их smile.gif
Gedeon
Отправлено: 23.06.2005, 11:48


Ветеран

Группа: Модератор
Сообщений: 1742



QUOTE (timson @ 22/06/2005, 16:41)
сори за офтоп.

Лена просто красавица!!! еще умница.. =)))

Не могу не согласиться. smile.gif cool.gif
Иван
Отправлено: 23.06.2005, 13:31


Машинист паровоза

Группа: Участник
Сообщений: 207



QUOTE (Лена @ 23/06/2005, 08:17)
Спасибо за комплемент, но если бы я была умница, то я бы отвечала на вопросы, а не задавала бы их smile.gif

нельзя знать абсолютно все, все задают вопросы, другое дело кому!
Treumer
Отправлено: 27.06.2005, 17:33


Станционный диспетчер

Группа: Участник
Сообщений: 92



QUOTE (Лена @ 23/06/2005, 08:17)
Спасибо за комплемент, но если бы я была умница, то я бы отвечала на вопросы, а не задавала бы их smile.gif

Главное — не то, задает ли человек вопросы, а то — в состоянии ли он понять данные ему ответы. wink.gif
-=\SeaWolF/=-
Отправлено: 16.03.2006, 22:49


Ученик-кочегар

Группа: Участник
Сообщений: 24



собсвтенно вопрос...
ближу сюда чем в дуругой топик...
Вот допустим у нас Есть Linux
Тама стоит GCC — Как заюзать открыйты код
чтобы запустить приложение через веб сервер?

Или как и чем копмпилировать... чтобы заработал...
Вот простой пример...
замутил чтобы запустить несколько затяжных процессво и посмотреть на загрузку сервера во время их исполнения....
sdtio.h
и printf — должен рабоать на всех платформах...
Однако подскажите как это победить? на WEBсервере

CODE

#include<stdio.h>

int rgbtable(){
int r=0, g=0, b=0;
for(r=0;r<=0xFF;r++)
for(r=0;r<=0xFF;r++)
for(r=0;r<=0xFF;r++)
{printf("<tr><td bgcolor=\"%06X\">%06X</td></tr>",r+g+b,r+g+B);}
return 0;
}

main()
{
 printf("Content-Type: text/html\n\n"); /*Это надо для задния типа данных на сколько я понимаю*/
 printf( "<HTML><HEAD><TITLE>Environment</TITLE></HEAD>\n");
 printf( "<BODY>\n");
 printf( "<TABLE>\n");
 rgbtable();
 printf( "</TABLE>\n");
 printf( "</HTML></BODY>\n");
 return 0;
}


Отредактировано AVC — 17/03/2006, 08:08
AVC
Отправлено: 17.03.2006, 09:42


Ветеран

Группа: Модератор
Сообщений: 1583



QUOTE

Как заюзать открыйты код
чтобы запустить приложение через веб сервер?

Построить исполняемый модуль.
Поместь его в определенное место (в какое знает ваш webсервер)
Опубликовать ссылку на страницу, которая получается с помощью этого расширения. Это либо указанием пути через CGI либо спец.расширением (как вы договоритесь со своим сервером)
Активировать её.

Для вашего случая лучше воспользоваться стандартным расширением, например PHP.

CODE

<table>
<?php
for ($r=0; $r < 256; $r += 32)
   for ($g=0; $g < 256; $g += 32)
       for ($b=0; $b < 256; $b += 32)
        {  $rgb = sprintf("%02X", $r).sprintf("%02X", $g).sprintf("%02X", $b);
           echo("<tr><td bgcolor='#$rgb'> </td></tr>\n");
        }
?>
</table>



QUOTE

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

Этот код для этой цели не подходит, так как время потраченное на передачу результата будет намного превосходить время построения страницы и вы просто забъете канал связи. smile.gif
-=\SeaWolF/=-
Отправлено: 18.03.2006, 06:57


Ученик-кочегар

Группа: Участник
Сообщений: 24



Так мне и надо несколько затяжных процессов и забивать канал...
чтобы н-ным количесвом клинтов успеть запустиь это процесс...
И посмотртеь на скольких забъется канал...(под сурьезный проект протестить надо)
А вот использование С/С++ на Unix Web серверах Это вопрос для меня тонки й пока

Вообщем уточню свои непонятки...
ПОчему взял это пример да потму что он простой
и по идее это код подходит для всех систем (опять же смотрю по таблице функции и библиотек)

Реально знаю как это работает только теритески... на практике писал только для ДОС и Виндовс... чем дальше тем больше хочетя вернуться к ДОСу smile.gif

Ну не суть

Собственно задача-вопрос:
1. Если компиоировать как CGI-Exutable
Как именно компилировать...? и гиде?
Т.е. могу ли я в среде DOS или Windows откомпилировать бинарник для Unix
2. Я так и не понял как именно запускать через веб Cи-ный исходник..
Те сервек не у меня физичски... а у мое повайдера...
Там есть gcc
Вообщем ткните меня пальцем где мануалы почитать — поустепнее или расскажите на пальцацах как это все сделать?
Если конечно это не займет много времени..




Вернуться в Вопросы программирования в C++Builder