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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сишная setenv и массивы _GET и _POST в PHP 
:(
    Опции темы
exceilence
Дата 22.6.2009, 05:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Вопрос в следующем, 
как php интерпретатор заполняет массивы _GET и _POST?  Как он узнает какие переменные куда положить?

Какие переменные окружения я должен выставить, чтобы он мог их проанализировать и заполнить эти массивы?

Пишу HTTP-сервер и это проблему решить не могу. Надеюсь кто-нибудь из стриков подскажет.
В переменные окружения положил
Код

            setenv( "QUERY_STRING", cheader->query, 0 );
            setenv( "REQUEST_METHOD", cheader->method, 0 );
            setenv( "REQUEST_URI", cheader->request_uri, 0 );
            setenv( "SCRIPT_NAME", cheader->script_name, 0 );
            sprintf( tmp_str, "%u", cheader->content_length );
            setenv( "CONTENT_LENGTH", tmp_str, 0 );


PM MAIL   Вверх
MAKCim
Дата 22.6.2009, 16:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 84
Всего: 207



тут надо либо доки php читать, либо эксперименты проводить
например, запускаем трассировку апача (через strace) и делаем простой запрос на php'ый скрипт
в логах смотрим, как он был вызван (что было передано в execve)


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
exceilence
Дата 26.6.2009, 03:15 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Ну что ж, пацанчики, 

Буду писать пока так, как написано в статье... может масивчики заполнит php интерпретатор:
"
При вызове CGI-программы все, что поступило в теле запроса, подается программе на стандартный ввод, а все, что находится в URL после вопросительного знака, помещается в переменную окружения QUERY_STRING. Веб-сервером данные запроса никак не интерпретируются и не преобразуются, эти задачи возложены на CGI-программу.

CGI-программа выдает содержимое ответа (как правило, HTML-контент) на свой стандартный вывод, который перехватывается веб-сервером с тем, чтобы отослать эти данные клиенту. Предварительно CGI-программа должна напечатать заголовок "Content-Type" и отделить его от данных пустой строкой. Например, вывод CGI-программы, генерирующей HTML, может выглядеть следующим образом:

Content-Type: text/html

<HTML>
  <BODY>
    <H1>Hello, world</H1>
  </BODY>    
<HTML>  
"



Путного ничего более не нашёл. Если узнаю как всё же он заполняет массивы - напишу... есть бредовые предположения... 

Морковным цветом напсано, что сервер никаким боком не трогает POST данные. 
И при этом просто подаёт на стандартный ввод программе.
Но!  Как интерпретатор успевает заполнить массив?  
Я не писал ниодного скрипта на php, которая бы читала со стандартного ввода, хотя потенциально есть у него такая возможность. Может интерпретатор и пользуется этим и всё съедает сам? 

Вот такие пироги для размышления.


Это сообщение отредактировал(а) exceilence - 26.6.2009, 03:23
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Программирование под Unix/Linux"
xvr
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой "Код".
  • Вопросы мобильной разработки тут
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

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

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


 




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


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

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