Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » CGI: переменные окружения Apache

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

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
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Нормально ли это, или в программе косяк?  

остальные инициализируются только при определенных условиях.
 
например, AUTH_TYPE устанавливается только когда происходит авторизация с помощью выдачи 401 заголовка и браузер запрашивает пароль.. и так далее  


----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 22:05 05-10-2013
gabben



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Благодарю, тред можно закрывать

Всего записей: 13 | Зарегистр. 17-05-2013 | Отправлено: 22:12 05-10-2013
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Интернет » Web-программирование » CGI: переменные окружения Apache


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru