cgi环境变量?
时间:2007-04-03
来源:互联网
请教一个问题:
以前没有用过CGI,最近在学习CGI,使用C语言写。
我在LINUX平台上面配置好了APACHE,可以进行简单的CGI程序运行,但是使用
getenv( "QUERY_STRING ");却不能成功。
不知道这类的环境变量需要怎么配置,才能够使用getenv获取环境变量(及web用户传递过来的数据)
请各位兄弟指教下。
谢谢!
以前没有用过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显示文本文件的内容?
不好意思,不能解决你的问题还要问你问题,共同进步。
比如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);
}
#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
如果是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了
你起起来服务就OK了
作者: xiaoshun123 发布时间: 2010-04-30
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28