在c语言写的cgi程序中如何获取URL传递的参数
例如在
1.html中通下面的js完成页面调转:
<script>
window.location.href = "abc.cgi?name1="+name1+"&name2="+name2+"+"&pass1="+pass1+";
</script>

在abc.cgi程序中如何获取页面传递的name1\name2\pass1的值显示在abc.cgi页面
第二种通过<form action="abc.cgi" method="POST">调转到abc.cgi
这种情况如何获取name1\name2\pass1的值并显示在abc.cgi页面

------解决方案--------------------
嗯,首先你能确定你要的参数名。 并且知道query-string是这种形式:
para1=val1¶2=val2
那么你可以首先将他们拆开:

比如要获取$_GET['action'];
char * query_string = "para1=val1¶2=val2¶3=val3";

int main(){
char * str = (char *)malloc(strlen(query_string)+1);
char * index;
memcpy(str, query_string, strlen(query_string)+1);
int i=0;
char * get[100];

while(NULL != (index = strchr(str, '&' ))){
//printf("%s\n", index);
get[i] = (char *)malloc(index-str + 1);
strncpy(get[i++], str, index - str);
strncpy(str, index + 1, strlen(str)-(index-str) + 1);
}
get[i] = (char*)malloc(strlen(str)+1);
strncpy(get[i++], str, strlen(str)+1);
for(int m=0; m<i; m++){
printf("%s\n", get[m]);
free(get[m]);
}
}
~
这样,就会得到形如:
para1=val1
para2=val2
para3=val3
这样的参数。
然后你strchr 等号。。。。。

CGI 概述 CGI (Common Gateway Interface: 公用网关接口)规定了Web服务器调用其他可执行 程序 ( CGI 程 序)的接口协议标准。Web服务器通过调用 CGI 程序 实现和Web浏览器的交互, 也就是 CGI 程序 通过读标准输入,接受Web浏览器发送给Web服务器的信息, 进行处理, 将响应结果再通过标准输出回送给Web服务器, 然后经过http协议返回给Web浏览器。 CGI 程序 一般完... 网页html通过post或get方法将页面 的数据以键值对 字符串 的形式传入环境变量 ,需要有一个剥离函数将各键对应的值 提取 出来。getvalue.h#include &lt;stdlib.h&gt; #include &lt;stdio.h&gt; #include &lt; string .h&gt; #define FIELD_LEN 60 //how long each name or val... 具体的 url cgi _obj?param1=1&path=192.168.2.1 要 获取 path的值,可以用下面的语句来将192.168.2.1存入file_path变量。 CHAR file_path[MAX_PATH]; cgi Form String ("path", file_path, sizeof(file_path)); 文章目录 CGI 的出现 CGI CGI 通信模型准备阶段执行阶段输出阶段环境变量 URL 编码 CGI 输出配置Apache使用 CGI CGI 程序 CGI 的问题 CGI 的出现 CGI 算是一门古老的技术,它是在上个世纪90年代出现的,在当时Web只有静态网站的情况下提出了动态网站的需求, CGI 技术就是为了满足这种需求而出现的。 当时Web站点只有静态文件,静态网页是没有变化的,而如果需要服务器能够能够拓展更多的功能,例如 表单 处理,访问数据库并处理返回的数据,制作动态网站等等,那么就需要一种 程序 语言编 相应的功能,但这种 程序 如何与 function getQuery String Args() { var qs = (location.search.length > 0 ? location.search.sub string (1) : ""), args = {}, items = qs.length ? qs.split("&") : [], item = null, CGI 是指web服务器调用编程语言编 程序 的一个接口。比如我们可以编 一个用户注册的页面,用户将其输入的邮箱、用户名、密码输入并点击注册,此时浏览器就将用户输入的内容发送给了我们后台的 CGI 程序 ,我们的 CGI 程序 接受到这些信息,可以对其进行处理。比如送 1. CGI 定义: CGI (CommonGateway Interface)是HTTP服务器与你的或其它机器上的 程序 进行“交谈”的一种工具,其 程序 须运行在网络服务器上。 CGI 程序 在服务器端执行,并可以和Web服务器在同一主机上。常用的 CGI 语言有Perl、shell、Python,在windows上也可以用C、C++或Java等进行编 。2. CGI 功能: 绝大多数的 CGI 程序 被用来解释处理来自 一、 CGI (通用网关接口)是外部扩展应用 程序 与 Web 服务器交互的一个标准接口。... 1 二、 Cgi 编程(根据 CGI 标准,编 Web服务器运行时的外部扩展应用 程序 )可以对客户端浏览器输入的数据经web服务器和业务逻辑 程序 进程进行交互操作。... 2 三、web服务器配置... 3 四、环境变量列表... 3 五、注意的问题... 3 CGI (通用网关接口)是外部扩展应用 程序 与 Web 服务器交互的一个标准接口。 公共网关接口(Common Gateway Interf... 再看WX公众号开发文档,看到部分接口的请求方式为GET,让我想到PHP 有一个函数file_get_contents用来 获取 文档内容为一个 字符串 ,那这个函数貌似可以替代自己 的c url 函数,这就 个小案例实现一下判断用户是否关注公众号。查询关注需要用到这个接口 获取 token用到这个接口// 获取 access_token$token = file_get_contents('https://api.w... 在html里调试 CGI 程序 的一个方法-针对 C语言 通常一个 CGI 不起作用,很有可能是 CGI 程序 非法越界等错误。而用浏览器打开调用 CGI 的HTML网页,并不会给你有用错误提示(IE倒有一些)。所以在 CGI 正式使用前,最好把其当一应用 程序 调试,通过也在HTML里使用。而 CGI 获取 HTML的GET或POST数据,我们可以用一字符数组代替。正常 CGI 程序 ,代码如下code1:char*input;char... Perl的 CGI 模块可以用于生成HTTP头部和HTML页面。本页内容采集自Perl的 CGI 文档。 CGI 的同时支持命名 参数 和非命名 参数 ,所有命名 参数 均为散列,并且必须为第一 参数 ,非命名 参数 只对一些内建的常用操作符所识别,统一使用命名 参数 规则可以便于维护。像这样: header({-charset=>"utf-8"}) CGI 的第二 参数 用于创建内容,内容分为两种,一种是串联,一种...