Автор Тема: проблем с cgi c++  (Прочитано 3188 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн sergey24

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 10
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
проблем с cgi c++
« : 14 Декабря 2004, 23:24:54 »
Всем привет

Вот решил разобраться с cgi

попробовал пару примеров на си и врозникла одна проблемка
не определяются броузер, рефер и все остальное кроме QUERY_STRING

апач подвинду и через visual c++ компилю
подскажите в чем прикол?

 #include
#include
#include
#include


void main (void){
char *RemoteAddr = getenv ("REMOTE_ADDR");
char *QueryString = getenv ("QUERY_STRING");
char *p;
int *v;

printf ("Content-type: text/html\\n");
printf ("Pragma: no-cache\\n");
printf ("\\n");

printf ("");

printf ("IP: ",RemoteAddr);
printf ("param : %s", QueryString);



p= strtok (QueryString,"&");
printf ("\\n");
printf (p);

do {
        p= strtok (NULL, "&");
        if (p) {

                printf ("|%s", p);
        }
} while (p);


printf ("\\n Параметры юзера: \\n");

printf ("\\n refer: " , getenv ("HTTP_REFERER"));

printf ("\\n lang: " , getenv ("HTTP_ACCEPT_LANGUAGE"));

printf ("\\n brouser: " , getenv ("HTTP_USER_AGENT"));

printf ("\\n os: " , getenv ("HTTP_USER_AGENT"));


printf ("\\n");
}

Оффлайн ondr

  • Модератор
  • Глобальный модератор
  • Старожил
  • *****
  • Сообщений: 440
  • +0/-0
  • 0
    • Просмотр профиля
проблем с cgi c++
« Ответ #1 : 15 Декабря 2004, 02:37:31 »
у тебя почти везде пропущен формат данных в printf()

вот код, который выведет тебе все переменные окружения:

#include
using namespace std;

int main(int argc, char **argv, char **env)
{
    cout << "content-type: text/plain" << endl << endl;
    for (int c=0; env[c]; ++c)
    { cout << env[c] << endl;
    }
    return 0;
}
0 OK, 0:1

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28