CGI程序制作
2017-10-19 10:17
141 查看
本文的内容是:制作一个CGI程序
先用C语言写一个程序,编译,连接,得到一个.exe的可执行文件。
将这个.exe的可执行文件的扩展名.exe改为.cgi,就好了,这就是一个CGI程序了。
如果不需要一个实例,那么可以看看文章最下面,有简单的代码
以下是C语言代码(以下代码在DevCpp5.11中通过,通过的编译器为GCC 4.9.2 32/64-bit Release,其它编译器大部分也可以正确编译):
forms.c
register.c
function.h
简单的代码:
在这里,用printf函数输出html代码,不用说,大家应该看得出。
如果要提交表单的话,就在form标签的action属性里面填上处理程序。处理程序那边有post和get两种方式获取提交的数据,然后就可以处理了。
CGI程序不只有C语言可以写,不过C语言是我最熟悉的语言,顺手。
没有最好的编程语言,只有最适合自己的。别说Python好,只有适合自己才算好!
CGI程序也可以用Python编写,C++也可以,Perl也可以,不过Perl和Python是脚本。在这,用的是C语言。其实我觉得只要是一个可以编写可执行程序的就可以。VB也行,Delphi也行,C#。
其它关于CGI程序所要用的函数或另外的编程语言实现,大家可以去搜一下。
CGI程序的制作:
这篇文章所介绍的CGI程序是C语言做的。先用C语言写一个程序,编译,连接,得到一个.exe的可执行文件。
将这个.exe的可执行文件的扩展名.exe改为.cgi,就好了,这就是一个CGI程序了。
如果不需要一个实例,那么可以看看文章最下面,有简单的代码
以下是C语言代码(以下代码在DevCpp5.11中通过,通过的编译器为GCC 4.9.2 32/64-bit Release,其它编译器大部分也可以正确编译):
forms.c
#include <stdio.h> #include "function.h" int main(void) { PrintHTTPHead(); PrintHTMLHead(); PrintHTMLTitle("技微工作室成员注册页面"); printf("<style type=\"text/css\">"); printf("h1,div{text-align:center;}"); printf("div{width:300px;margin-left:auto;margin-right:auto;}"); printf("</style>"); PrintHTMLBody(); printf("<h1>技微工作室成员注册页面</h1>"); printf("<div>"); printf("<form action=\"cgi/register.cgi\" method=\"post\">"); printf("<table border=\"0px\" cellspacing=\"0px\" cellpadding=\"5px\" width=\"300px\">"); printf("<tr><td>网名:</td><td><input type=\"text\" name=\"name\"/></td></tr>"); printf("<tr><td>密码:</td><td><input type=\"password\" name=\"password\"/></td></tr>"); printf("<tr><td>电子邮箱:</td><td><input type=\"text\" name=\"email\"/></td></tr>"); printf("<tr><td>备注:</td><td><textarea name=\"memo\" cols=\"20\" rows=\"3\">备注</textarea></td></tr>"); printf("<tr><td colspan=\"2\"><input type=\"submit\" value=\"注册\"/><input type=\"reset\" value=\"重置\"/><input type=\"button\" value=\"退出\" onclick=\"javascript:window.close();\"/></td></tr>"); printf("</table>"); printf("</form>"); printf("</div>"); PrintHTMLFoot(); }
register.c
#include <stdio.h> #include <string.h> #include <stdlib.h> #include "function.h" int main(void) { PrintHTTPHead(); PrintHTMLHead(); PrintHTMLTitle("register"); PrintHTMLBody(); char *method,string[255],*temp,tem[4],ch; int length; FILE *fp; temp=string; method=getenv("REQUEST_METHOD");/*用什么方法提立表单*/ if(strcmp(method,"POST")==0) { length=atoi(getenv("CONTENT_LENGTH")); if(length>255) { printf("您的信息似乎不对!"); PrintHTMLFoot(); exit(0); } fp=fopen("cgi\\information\\inf.txt","a+"); if(fp==NULL) { printf("服务器端保存信息失败!"); PrintHTMLFoot(); exit(0); } fgets(string,length+1,stdin); while(*temp!='\0') { ch=*temp; if(ch=='+') { temp++; continue; } while(ch=='%') { strncpy(tem,temp,3); tem[3]='\0'; if(strcmp(tem,"%40")==0) break; temp+=3; ch=*temp; } if(strcmp(tem,"%40")==0) { fputc('@',fp); temp+=3; strcpy(tem,""); continue; } if(ch!='&') fputc(ch,fp); else fputc('\n',fp); temp++; } fputc('\n',fp); fputc('\n',fp); if(fclose(fp)==EOF) { printf("文件关闭失败!"); PrintHTMLFoot(); exit(0); } printf("信息记录成功!"); } PrintHTMLFoot(); }
function.h
#include <stdio.h> void PrintHTTPHead()/*这个函数必须调用,因为先要发送一个http头*/ { printf("Content-type:text/html;"); printf("\n\n");/*这后面必须要两个加车,因为http头后面要空一行*/ } void PrintHTMLHead() { printf("<html>"); printf("<head>"); } void PrintHTMLBody() { printf("</head>"); printf("<body>"); } void PrintHTMLFoot() { printf("</body>"); printf("</html>"); } void PrintHTMLTitle(char *title) { printf("<title>%s</title>",title); }
简单的代码:
#include <stdio.h> int main(void) { printf("Content-type:text/html;");/*在我教室电脑上测试,可少,不过不推荐不写这个*/ printf("\n\n");/*测试,不可少*/ /*以下就是输出一个html文件的代码,就是这样*/ printf("<html>"); printf("<head>"); printf("<title>WELCOME</title>"); printf("</head>"); printf("<body>"); printf("<h1>WELCOME</h1>"); printf("</body>"); printf("</html>"); }
在这里,用printf函数输出html代码,不用说,大家应该看得出。
如果要提交表单的话,就在form标签的action属性里面填上处理程序。处理程序那边有post和get两种方式获取提交的数据,然后就可以处理了。
CGI程序不只有C语言可以写,不过C语言是我最熟悉的语言,顺手。
没有最好的编程语言,只有最适合自己的。别说Python好,只有适合自己才算好!
CGI程序也可以用Python编写,C++也可以,Perl也可以,不过Perl和Python是脚本。在这,用的是C语言。其实我觉得只要是一个可以编写可执行程序的就可以。VB也行,Delphi也行,C#。
其它关于CGI程序所要用的函数或另外的编程语言实现,大家可以去搜一下。
相关文章推荐
- 微信小程序之swiper制作tab切换效果
- 程序发布系列 inno setup制作安装程序
- 如何用VS2005制作Web安装程序
- cgi程序的两种执行方式
- vs制作安装程序
- 。NET程序安装包制作(WinForm)
- 实战:从零开始制作一个跑步微信小程序
- C#语言制作蜘蛛程序详解 (转)
- IIS7 CGI 的设置 -- IIS 下运行 Delphi 编译的 CGI 程序
- vs2005 安装程序制作1 启动条件顺序
- VS2005制作Web安装程序
- InstallShield X制作安装程序杂记(5.System Configuration节点)
- 微信小程序表格制作
- 如何用VS2005制作Web安装程序(转)
- NSIS脚本制作Java程序的EXE启动器
- C# 制作Java +Mysql+Tomcat 环境安装程序,一键式安装 (续集Tomcat 配置)
- Google Maps API V3 更新程序 离线地图开发包制作工具
- cmd命令对java程序进行编译时出现:“编码GBK的不可映射字符”两种解决方法,以及dos下帮助文档的制作
- 制作一个控制台小程序,要求:用户可以在控制到录入学生的姓名,当用户输入quit(不区分大小写)时,程序停止接收用户输入,并且显示出学生个数及姓名
- 嵌入式webserver中cgi程序的调用