cgi开发库CGIC
CGIC是开源的标准的Ansi C库,很好地封装C语言开发CGI的常用操作,使得用C开发CGI非常地方便。官方地址:http://www.boutell.com/cgic/#support下载地址:http://www.boutell.com/cgic/cgic205.zip 一些例子:使用CGIC实现Web文件上传的服务端代码CGICsqlite
CGIC是开源的标准的Ansi C库,很好地封装C语言开发CGI的常用操作,使得用C开发CGI非常地方便。
官方地址:http://www.boutell.com/cgic/#support
下载地址:http://www.boutell.com/cgic/cgic205.zip
一些例子:
cgic.c
capture.c
cgictest.c
首先在vc6里创建一个空的win32静态库cgic,然后添加cgic.c,编译后得到cgic.lib库
创建一个空的console工程cgictest,然后添加cgictest.c,在setting|link添加cgic.lib,编译得到cgictest.exe
将cgictest.exe拷贝到事先创建好的测试网站的cgi-bin下,在iis里右击cgictest.exe浏览,就可以看到一个form表单,几乎所有的控件都包括了
最后以capture.c为例说明一下例子的源码结构:
#include "cgic.h"
int cgiMain() {
cgiWriteEnvironment("/CHANGE/THIS/PATH/capcgi.dat");
cgiHeaderContentType("text/html");
fprintf(cgiOut, "Captured\n");
fprintf(cgiOut, "Captured\n");
fprintf(cgiOut, "Your form submission was captured for use in\n");
fprintf(cgiOut, "debugging CGI code.\n");
return 0;
}
可以看到capture.c实在是太简单了,主函数main被定义在了cgic.c里,在主函数的最后调用了cgiMain(),所有我们要开发一个自己的cgi的话,
只需要实现一个cgiMain()即可,就像capture.c那样。
获得Get方式提交的数据
cgic已预先把get方式获得数据存在cgiQueryString中,我们要做需要就是声明一下
#include <stdio.h>
#include "cgic.h"
#include <string.h>
#include <stdlib.h>
extern char *cgiQueryString; //声明get数据变量
int cgiMain() {
cgiHeaderContentType("text/html");
fprintf(cgiOut, "<HTML><HEAD>\n");
fprintf(cgiOut, "<TITLE>My CGIC</TITLE></HEAD>\n");
fprintf(cgiOut, "<BODY>");
fprintf(cgiOut, "<H1>%s</H1>",cgiQueryString);
fprintf(cgiOut, "</BODY>\n");
fprintf(cgiOut, "</HTML>\n");
return 0;
}
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)