Для связи курса программирования с курсом Интернет технологий интересно рассмотреть тему CGI.
Для этого создадим на koding.com в папке Web файл 1.cpp следующего содержания:
1 2 3 4 5 6 7 |
#include <iostream> using namespace std; int main() { cout << "Content-Type: text/html\n\n"; cout << "<html><body><h1>Hello, CGI!</h1>\n"; cout << "</body> </html>\n"; } |
Теперь можно убедиться в его работе открыв в браузере страничку your_name.koding.io/a.cgi, где your_name ваш аккаунт на koding.com.
Теперь свяжем нашу программу с формой. Для этого в файле index.html (если он Вам не нужен) наберем следующий код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> </head> <body> <h1>CGI</h1> <form action="a.cgi" method="POST"> <input name="x" /> <input name="y" /> <input type="submit" value="post"> </form> </body> </html> |
1 2 3 4 5 6 7 8 9 10 11 12 13 |
#include <iostream> using namespace std; int main(int argc, char **argv, char **envp) { cout << "Content-Type: text/html\n\n"; cout << "<html><body>"; string s; cin >> s; cout << s; cout << "</body> </html>\n"; } |
Если все выполнить правильно, то будет выведено что-то вроде «*x=3453453&y=34534534*»
Задание. Чтобы освоиться с этой технологией напишите программу, которая складывает два целых числа [latex]x[/latex] и [latex]y[/latex].
GET
Теперь познакомимся с методом GET. Составим более сложный пример в котором распечатаем содержимое переменных среды:
1 2 3 4 5 6 7 8 9 10 11 |
#include <iostream> using namespace std; int main(int argc, char **argv, char **envp) { cout << "Content-Type: text/html\n\n"; cout << "<html><body><h1>CGI Environment:</h1>\n"; while(*envp != NULL) { cout << *envp++ << "<br>\n"; } cout << "</body> </html>\n"; } |
Теперь можно убедиться в его работе открыв в браузере страничку your_name.koding.io/b.cgi, где your_name ваш аккаунт на koding.com.
Снова свяжем нашу программу с формой. Для этого в файле index.html (если он Вам не нужен) наберем следующий код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> </head> <body> <h1>CGI</h1> <form action="b.cgi" method="GET"> <input name="x" /> <input name="y" /> <input type="submit" value="get"> </form> </body> </html> |