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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Написать скрипты C++ ? 
:(
    Опции темы
denes
  Дата 25.7.2012, 23:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

Репутация: -3
Всего: -7



Встраивают интерпретаторы подробнее можно ?

А лучще покажите на премере ?
--------------------
Денис
PM MAIL   Вверх
bsa
Дата 25.7.2012, 23:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



PM   Вверх
denes
  Дата 27.7.2012, 19:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

Репутация: -3
Всего: -7



Нашол вроде скрипт на C++ / Сетевые технологии / Сеть     
Cgi скрипт на C++.


Сейчас научимся создавать cgi скрипты на С++. Для этого нам понадобится Web сервер, желательно Apache
ну и конечно VC++. Для начала создадим домен, в котором будем тестировать скрипт, лезь в директорию где
установлен Apache, у меня это C:\WebServers, дальше в папке home создай папку с названием test.com. 
В test.com сделай еще две папки, www и cgi, не забудь создать текстовый файл error.log. В папку www 
помести файл index.html, примерно такого содержания:

<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1251">
<title>script</title>
</head>
<body bgcolor="black" text="#FF9933" link="blue" vlink="purple" alink="red">
<form action="http://www.test.com/cgi/CGIScriptElf.cgi" method=GET>Enter:
<input type=text maxlength=256 name=comment>
<input type=submit value=Go>
</form>
</body>
</html> 

Создавай новый проект Win32 Console Application  и пиши следущее:

#include <windows.h>
#include <iostream>
using namespace std;

int main()
{
        char szName[1024];
        cout<<"Content-Type: text/html\n\n";
        cout<<"<HTML><HEAD><TITLE>Lazy_elf</TITLE></HEAD>\n";
        cout<<"<body bgcolor='black' text='#F2F2F2' link='#FF9900' vlink='#FF9900' alink='#FF9900'>\n";
        cout<<"<meta http-equiv='content-type' content='text/html; charset=windows-1251'>\n";
        cout<<"<p style='line-height:100%; margin-left:10%;' align='center'><span style='font-size:14pt;'>Cgi-скрипт на С++.</span></p>\n";
        cout<<"<p style='line-height:100%; margin-left:10%;'><a href=http://www.pagel.by.ru>www.pagel.by.ru</a> Code by Lazy_elf</p>\n";
        char comment[256];   
        if(GetEnvironmentVariable("QUERY_STRING",comment,256))
        {cout<<"<p style='line-height:100%; margin-left:10%;'>Вы ввели: "<<comment<<"</p>\n";}
////////////////////////////////////////////////////////////////////////////////////////////////////////        
        cout<<"<p style='line-height:100%; margin-left:10%;' align='left'><font color='#FF9933'>Данные о клиенте:</font></p>\n";
        if(GetEnvironmentVariable("HTTP_USER_AGENT",szName,1024))
        {cout<<"<p style='line-height:100%; margin-left:10%;' align='left'><font color='#00C800'>HTTP_USER_AGENT: </font>"<<szName<<"</p>\n";}
        if(GetEnvironmentVariable("HTTP_ACCEPT",szName,1024))
        {cout<<"<p style='line-height:100%; margin-left:10%;' align='left'><font color='#00C800'>HTTP_ACCEPT: </font>"<<szName<<"</p>\n";}
        if(GetEnvironmentVariable("HTTP_REFERER",szName,1024))
        {cout<<"<p style='line-height:100%; margin-left:10%;' align='left'><font color='#00C800'>HTTP_REFERER: </font>"<<szName<<"</p>\n";}
        if(GetEnvironmentVariable("HTTP_ACCEPT_ENCODING",szName,1024))
        {cout<<"<p style='line-height:100%; margin-left:10%;' align='left'><font color='#00C800'>HTTP_ACCEPT_ENCODING: </font>"<<szName<<"</p>\n";}
        if(GetEnvironmentVariable("HTTP_ACCEPT_LANGUAGE",szName,1024))
        {cout<<"<p style='line-height:100%; margin-left:10%;' align='left'><font color='#00C800'>HTTP_ACCEPT_LANGUAGE: </font>"<<szName<<"</p>\n";}
        if(GetEnvironmentVariable("HTTP_IF_MODIFIED_SINCE",szName,1024))
        {cout<<"<p style='line-height:100%; margin-left:10%;' align='left'><font color='#00C800'>HTTP_IF_MODIFIED_SINCE: </font>"<<szName<<"</p>\n";}
        if(GetEnvironmentVariable("HTTP_FROM",szName,1024))
        {cout<<"<p style='line-height:100%; margin-left:10%;' align='left'><font color='#00C800'>HTTP_FROM: </font>"<<szName<<"</p>\n";}
////////////////////////////////////////////////////////////////////////////////////////////////////////
        szName[0] = '\0';
        cout<<"<p style='line-height:100%; margin-left:10%;' align='left'><font color='#FF9933'>Данные о сервере:</font></p>\n";
        if(GetEnvironmentVariable("GATEWAY_INTERFACE",szName,1024))
        {cout<<"<p style='line-height:100%; margin-left:10%;' align='left'><font color='#00C800'>GATEWAY_INTERFACE: </font>"<<szName<<"</p>\n";}
        if(GetEnvironmentVariable("SERVER_NAME",szName,1024))
        {cout<<"<p style='line-height:100%; margin-left:10%;' align='left'><font color='#00C800'>SERVER_NAME: </font>"<<szName<<"</p>\n";}
        if(GetEnvironmentVariable("SERVER_PORT",szName,1024))
        {cout<<"<p style='line-height:100%; margin-left:10%;' align='left'><font color='#00C800'>SERVER_PORT: </font>"<<szName<<"</p>\n";}
        if(GetEnvironmentVariable("SERVER_PROTOCOL",szName,1024))
        {cout<<"<p style='line-height:100%; margin-left:10%;' align='left'><font color='#00C800'>SERVER_PROTOCOL: </font>"<<szName<<"</p>\n";}
        if(GetEnvironmentVariable("SERVER_SOFTWARE",szName,1024))
        {cout<<"<p style='line-height:100%; margin-left:10%;' align='left'><font color='#00C800'>SERVER_SOFTWARE: </font>"<<szName<<"</p>\n";}
////////////////////////////////////////////////////////////////////////////////////////////////////////
        szName[0] = '\0';
        cout<<"<p style='line-height:100%; margin-left:10%;' align='left'><font color='#FF9933'>Данные о запросе:</font></p>\n";
        if(GetEnvironmentVariable("AUTH_TYPE",szName,1024))
        {cout<<"<p style='line-height:100%; margin-left:10%;' align='left'><font color='#00C800'>AUTH_TYPE: </font>"<<szName<<"</p>\n";}
        if(GetEnvironmentVariable("CONTENT_FILE",szName,1024))
        {cout<<"<p style='line-height:100%; margin-left:10%;' align='left'><font color='#00C800'>CONTENT_FILE: </font>"<<szName<<"</p>\n";}
        if(GetEnvironmentVariable("CONTENT_LENGTH",szName,1024))
        {cout<<"<p style='line-height:100%; margin-left:10%;' align='left'><font color='#00C800'>CONTENT_LENGTH: </font>"<<szName<<"</p>\n";}
        if(GetEnvironmentVariable("CONTENT_TYPE",szName,1024))
        {cout<<"<p style='line-height:100%; margin-left:10%;' align='left'><font color='#00C800'>CONTENT_TYPE: </font>"<<szName<<"</p>\n";}
        if(GetEnvironmentVariable("PATH_INFO",szName,1024))
        {cout<<"<p style='line-height:100%; margin-left:10%;' align='left'><font color='#00C800'>PATH_INFO: </font>"<<szName<<"</p>\n";}
        if(GetEnvironmentVariable("PATH_TRANSLATED",szName,1024))
        {cout<<"<p style='line-height:100%; margin-left:10%;' align='left'><font color='#00C800'>PATH_TRANSLATED: </font>"<<szName<<"</p>\n";}
        //хм...
        if(GetEnvironmentVariable("REMOTE_ADDR",szName,1024))
        {cout<<"<p style='line-height:100%; margin-left:10%;' align='left'><font color='#00C800'>REMOTE_ADDR: </font>"<<szName<<"</p>\n";}
        if(GetEnvironmentVariable("REMOTE_HOST",szName,1024))
        {cout<<"<p style='line-height:100%; margin-left:10%;' align='left'><font color='#00C800'>REMOTE_HOST: </font>"<<szName<<"</p>\n";}
        if(GetEnvironmentVariable("REQUEST_METHOD",szName,1024))
        {cout<<"<p style='line-height:100%; margin-left:10%;' align='left'><font color='#00C800'>REQUEST_METHOD: </font>"<<szName<<"</p>\n";}
        if(GetEnvironmentVariable("REQUEST_LINE",szName,1024))
        {cout<<"<p style='line-height:100%; margin-left:10%;' align='left'><font color='#00C800'>REQUEST_LINE: </font>"<<szName<<"</p>\n";}
        if(GetEnvironmentVariable("SCRIPT_NAME",szName,1024))
        {cout<<"<p style='line-height:100%; margin-left:10%;' align='left'><font color='#00C800'>SCRIPT_NAME: </font>"<<szName<<"</p>\n";}
        cout<<"</BODY></HTML>\n";
        return 0;
}

Компилируй, у получившейся программы измени расширение на cgi или просто в настройках линкера (Project->Settings->Link) измени Output file name  и помести готовый скрипт в папку cgi. Запускай Apache, потом какой-нибудь браузер, в строке адрес напиши http://www.test.com, должно появится следующее:

Введи в поле и нажми кнопку Go, появится новая страница созданная скриптом, на которой сможешь увидеть значения основных переменных. Для получения значения нам необходима API функция GetEnvironmentVariable.
 
DWORD GetEnvironmentVariable(
  LPCTSTR lpName,  - имя переменной; 
  LPTSTR lpBuffer, - указатель на буфер, куда будет записано значение;
  DWORD nSize     - размер буфера.
); 

На этом все, удачного веб-программирования.

Добавлено через 47 секунд
 char szName[1024]; ???
--------------------
Денис
PM MAIL   Вверх
bsa
Дата 27.7.2012, 22:36 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Если бы ты не занимался глупостями, то тоже самое смог бы сделать на PHP или perl. Причем выглядело бы это значительно приличней.
А ты даже код по правилам форума оформить не можешь. Зачем тебе вообще программировать?
PM   Вверх
denes
  Дата 8.9.2012, 15:07 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

Репутация: -3
Всего: -7



Я же учусь а зачем вам тоже не нужно пусть иностранци делают напремер Японци а на кой Рассии програмисты нам только водка и тёлка всё так чтоли ?
--------------------
Денис
PM MAIL   Вверх
xvr
Дата 8.9.2012, 18:23 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

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



Цитата(denes @ 8.9.2012,  15:07)
Я же учусь

Цитата

— Ну что вы, Пуаро,  — пробормотал я.  — Мне очень лестно… Вероятно, я так или иначе научился чему-то от вас…

Он отрицательно покачал головой.

— Mais поп, ce n'est pas ca. [46] Вы ничему не научились.

— Как?  — изумленно спросил я.

— Не удивляйтесь. Все правильно. Никто ни у кого не должен учиться. Каждый человек должен развивать до предела свои возможности, а не копировать кого-то другого. Я не хочу, чтобы вы стали ухудшенным Пуаро. Я хочу, чтобы вы были непревзойденным Гастингсом! Впрочем, вы и есть непревзойденный Гастингс. Вы классически, совершенно нормальны. 
Агата Кристи, Смерть лорда Эджвера (глава 14)

Обучение предусматривает какой никакой прогресс, у вас его что-то не видно  smile 

Это сообщение отредактировал(а) xvr - 8.9.2012, 18:24
PM MAIL   Вверх
k0rvin
Дата 9.9.2012, 20:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(denes @ 8.9.2012,  15:07)
Я же учусь а зачем вам тоже не нужно пусть иностранци делают напремер Японци а на кой Рассии програмисты нам только водка и тёлка всё так чтоли ?

Цитата

--------------------
Денис


Уж не попов ли? =)


--------------------
“Object-oriented design is the roman numerals of computing.” — Rob Pike
All software sucks
PM MAIL   Вверх
denes
Дата 16.3.2015, 23:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

Репутация: -3
Всего: -7



Не одного путного савета
--------------------
Денис
PM MAIL   Вверх
maint
Дата 17.3.2015, 04:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(denes @ 16.3.2015,  23:28)
Не одного путного савета

русский язык не пробовали учить?
cgihtml ключевое слово, можно найти библиотеку на C
PM   Вверх
VSB
Дата 23.3.2015, 18:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



2012-2015
Некропостеры)
PM MAIL   Вверх
xvr
Дата 25.3.2015, 17:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

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



Цитата(VSB @  23.3.2015,  18:27 Найти цитируемый пост)
Некропостеры) 

А это ТС решил еще раз поднять эту тему. Видимо думал, что за 3 года что то изменилось smile

PM MAIL   Вверх
denes
  Дата 22.4.2015, 13:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

Репутация: -3
Всего: -7



А при чом тут cgihtml ?

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

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

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

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

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


 




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


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

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