嵌入式CGI开发之旅——6

实验一、单行文本框


对于网页的话我用DreamWeaver来画,呵呵这样方便很多,当然我也会贴出来代码。


单行文本框一般用来接受一些较短的字符串。


1、  创建源文件:


创建一个新的静态网页文件:mycgictest.html,建立一个单行文本输入域:


<html xmlns="http://www.w3.org/1999/xhtml">


<head>


<meta http-equiv="Content-Type" content="text/html; charset="utf-8"" />


<title>无标题文档</title>


</head>


<body>


<p>Hello To My CGIC Test! </p>


<form id="form1" name="form1" method="post" action="/cgi-bin/mycgictest.cgi">


  <label for="user_name">Your Name: </label>


  <input type="text" name="user_name" id="user_name" />


</form>


</body>


</html>


创建mycgictest.c文件:


#include "cgic.h"


#define USER_NAME_MAX_BYTE  51


int cgiMain(){


    char user_name_result[USER_NAME_MAX_BYTE-1];


    int fetch_result;


 


    cgiHeaderContentType("text/html");


    fprintf(cgiOut,"<html><head>\n");


    fprintf(cgiOut,"<title>my cgic test</title>\n");


    fprintf(cgiOut,"</head>\n");


    fprintf(cgiOut,"<body>\n");


 


    fetch_result=cgiFormStringNoNewlines("user_name",user_name_result,USER_NAME_MAX_BYTE);


    if(fetch_result==cgiFormTruncated){


       fprintf(cgiOut,"OH! You have a mars name,it is too long!\n回火星去吧");


    }else if(fetch_result==cgiFormEmpty){


       fprintf(cgiOut,"OH! You have not input you name!");


    }else if(fetch_result==cgiFormSuccess){


       fprintf(cgiOut,"Whelcom   ");


       fprintf(cgiOut,user_name_result);


    }


    fprintf(cgiOut,"</body></html>\n");


    return 0;


}


输出直接用到了cgiOut,当然如果你想直接通过printf打印出来也可以,不过cgic推荐使用统一的cgiOut来输出,这样能保存程序的一致性,而且用cgiOut来输出不会对性能造成任何的影响。获取表单输入域的数据我用了cgiFormStringNoNewlines()函数,因为单行文本不存在换行问题。(还有一个问题,CGIC能够输出中文,但是不能够处理表单输入域中提交的中文)这里可以看到用CGIC库确实是比较方便的,它屏蔽了GETPOST的差别,不管你是用那种方法都能够正确的获得数据。


2、 编译:如果是在windows中,则用VS2008EP版(呵呵因为我用的是这个版本哈)新建一个工程,然后把cgic.hcgic.cmycgictest.c导入到工程中,编译以后就会生成一个可执行文件,将文件后缀名改为.cgi然后拷贝到自己服务器的cgi-bin目录下。


3、  测试:在浏览器中输入127.0.0.1/mycgictest.html然后在页面的文本框中能够输入一个字符串(不能超过50个字符),回车以后能看到“Whelcom 你输入的字符串就成功了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值