gabben
Newbie | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Здравствуйте. В CGI я новичок, начал делать некоторые задания, одним из которых было вывести некоторые переменные окружения в браузере(AUTH_TYPE, CONTENT_FILE, CONTENT_LENGTH, CONTENT_TYPE, OUTPUT_FILE, PATH_INFO, PATH_TRANSLATED, QUERY_STRING, REMOTE_ADDR, REMOTE_HOST, REQUEST_METHOD, REQUEST_LINE, SCRIPT_NAME) с помощью CGI скрипта. Что делал: создал простой index.html с кнопкой, по нажатию которой используется скрипт 1.cgi. Код: #include <stdio.h> #include <stdlib.h> #include <string> #include <iostream> int i = 0 ; const std::string ENV[13] = { "AUTH_TYPE", "CONTENT_FILE", "CONTENT_LENGTH", "OUTPUT_FILE", "CONTENT_TYPE", "PATH_INFO", "PATH_TRANSLATED", "QUERY_STRING", "REMOTE_ADDR", "REMOTE_HOST", "REQUEST_METHOD", "REQUEST_LINE",. "SCRIPT_NAME" }; int main() { std::cout << "Content-type:text/html\r\n\r\n" ; std::cout << "<html>\n" ; std::cout << "<head>\n" ; std::cout << "<title>CGI</title>\n" ; std::cout << "</head>\n" ; std::cout << "<body>\n" ; std::cout << "<table border cellspacing = \"2\">" ; for(i = 0 ; i < 13 ; i++) { std::cout << "<tr><td>" << ENV[i] << "</td>\n" ; char *varname = getenv( ENV[i].c_str() ) ;. if(varname != NULL) { std::cout << "<td>" << varname << "</td></tr>\n" ; } else { std::cout << "<td>" << "Variable is not defined" << "</td></tr>\n" ; } } std::cout << "</table>\n" ; std::cout << "</body>\n" ; std::cout << "</html>\n" ; return 0 ; }; | По завершению работы скрипта выводит только REMOTE_ADDR, REQUEST_METHOD, SCRIPT_NAME и QUERY_STRING. Остальные переменные равны NULL. Нормально ли это, или в программе косяк? Спасибо. | Всего записей: 13 | Зарегистр. 17-05-2013 | Отправлено: 20:33 05-10-2013 | Исправлено: gabben, 20:41 05-10-2013 |
|