mysql cgi c_cgi获取所有环境变量[C语言]

#include #define MAX_CONTENT_LEN        1024

int main()

{

extern char   **environ;

int nlen = 0;

int i;

char szContent[MAX_CONTENT_LEN];

char **penv;

char *req = NULL;

memset(szContent, 0, MAX_CONTENT_LEN);

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

for ( penv = environ; *penv; penv++ )

printf("%s

", *penv);

if ( strcmp("POST", getenv("REQUEST_METHOD")) == 0 )

{

nlen = atoi(getenv("CONTENT_LENGTH"));

for (i = 0; i < nlen; i++ )

{

if ( i < MAX_CONTENT_LEN )

szContent[i] = fgetc(stdin);

else

break;

}

printf("

%s", szContent);

}

else

{

printf("

%s", getenv("QUERY_STRING"));

}

return 0;

}

在地址栏 http://localhost/testenv.htm

假设我们输入的用户名和密码分别为abcd和efgh,提交表单之后,在我的机器上显示的结果如下:

COMSPEC=C:\WINDOWS\system32\cmd.exe

CONTENT_LENGTH=31

CONTENT_TYPE=application/x-www-form-urlencoded

DOCUMENT_ROOT=d:/chateaurt4/www

HTTP_ACCEPT=text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5

HTTP_ACCEPT_CHARSET=gb2312,utf-8;q=0.7,*;q=0.7

HTTP_ACCEPT_ENCODING=gzip,deflate

HTTP_ACCEPT_LANGUAGE=zh-cn,zh;q=0.5

HTTP_CONNECTION=keep-alive

HTTP_HOST=localhost

HTTP_KEEP_ALIVE=300

HTTP_REFERER=http://localhost/testenv.htm

HTTP_USER_AGENT=Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.8.1.3) Gecko/20070309 Firefox/2.0.0.3

PATH=C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;D:\Microsoft

Visual Studio\Common\Tools\WinNT;D:\Microsoft Visual

Studio\Common\MSDev98\Bin;D:\Microsoft Visual

Studio\Common\Tools;D:\Microsoft Visual

Studio\VC98\bin;D:\AppServ\Apache2.2\bin;D:\AppServ\php5;D:\AppServ\MySQL\bin

REMOTE_ADDR=127.0.0.1

REMOTE_PORT=1644

SCRIPT_FILENAME=d:/chateaurt4/www/cgi-bin/env.cgi

SERVER_ADDR=127.0.0.1

SERVER_ADMIN=who@where.net

SERVER_NAME=localhost

SERVER_PORT=80

SERVER_SIGNATURE=Apache/1.3.33 Server at localhost Port 80

SERVER_SOFTWARE=Apache/1.3.33 (Win32)

SystemRoot=C:\WINDOWS

WINDIR=C:\WINDOWS

GATEWAY_INTERFACE=CGI/1.1

SERVER_PROTOCOL=HTTP/1.1

REQUEST_METHOD=POST

QUERY_STRING=

REQUEST_URI=/cgi-bin/env.cgi

SCRIPT_NAME=/cgi-bin/env.cgi

usr=abcd&pwd=efgh&submit=Submit当然不同的机器,它输出的有些结果可能不一样。如果单纯为了输出环境变量,我们可以这样做:

#include int main (int argc, char **argv, char **envp)

{

char **var = envp;

while (*var)

printf ("%s \n",*var++);

return 0;

}

这里面得到的环境变量结果和CGI程序里面的结果差别比较大,因为一个是获得与web应用程序有关的环境变量,而一个获得的是系统的环境变量。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值