+ -
当前位置:首页 → 问答吧 → cgi环境变量?

cgi环境变量?

时间:2007-04-03

来源:互联网

请教一个问题:
以前没有用过CGI,最近在学习CGI,使用C语言写。
我在LINUX平台上面配置好了APACHE,可以进行简单的CGI程序运行,但是使用
getenv( "QUERY_STRING ");却不能成功。
不知道这类的环境变量需要怎么配置,才能够使用getenv获取环境变量(及web用户传递过来的数据)
请各位兄弟指教下。
谢谢!

作者: hotrock   发布时间: 2007-04-03

楼主你好,因为工作需要,我现在用Shell脚本做CGI,表单的数据传送给Shell已经解决,不过不知道Shell如何把某些数据传回给提交请求的表单,想问一下楼主,能不能解决问题。

比如a.html中有一个form,form中有一个textarea和一个submit类型的input,刚打开a.html时textarea无内容,点击submit按钮后调用a.sh脚本去读取一个文本文件,我的问题是,Shell脚本如何把读取得数据传回给a.html中的textarea,使得点击按钮后textarea显示文本文件的内容?

不好意思,不能解决你的问题还要问你问题,共同进步。

作者: paul_allen   发布时间: 2007-04-08

应该可以成功的,
是不是你的检测方法不对
没检测出来?

作者: ly611919   发布时间: 2007-06-13

//代码不全paste出来,具体情况无法判断的,参考以下下面的代码吧。
#include   <stdio.h>
#include   <stdlib.h>
void   main(void)
{
char   *pchBuf=NULL;
char   *pchName[10],*pchValue[10];
int   inLen=0;
               
                //get   form   data   size
if   (   getenv( "CONTENT_LENGTH ")!=NULL   )
inLen   =   atoi(   getenv( "CONTENT_LENGTH ")   );

if   (inLen==0){
return   ;
}

pchBuf=(char   *)calloc(inLen+1,sizeof(char));
if   (!pchBuf)
        。。。。。。。。。。。。。把错误处理放在这里
                      //如果是GET时,传入的参数如下
      //data1=value1&data2=value2
                      把你处理Get参数放在这里
       
                Post的数据通常都encode了,Post时候把你的decode放在这里。


free((void   *)pchBuf);


}

作者: bigman_lfj   发布时间: 2007-06-14

表单提交有两种方式:GET和POST,可用REQUEST_METHOD检测出来,
如果是GET可以用QUERY_STRING读取表单值,如果是POST要从标准输入中读取,参考:


#!/bin/sh
echo   "Content-type:text/plain "
echo   " "

unset   temp

case   "$REQUEST_METHOD "   in
GET)     temp=${QUERY_STRING}
          ;;
POST)   read   temp   <   /dev/stdin
          ;;
*)         echo   "REQUEST_METHOD:not   GET   or   POST "
          exit
          ;;
esac

echo   $temp

作者: skw1975   发布时间: 2007-06-15

跟什么配置无关吧?

你起起来服务就OK了

作者: xiaoshun123   发布时间: 2010-04-30