天天看点

cgi开发过程

Form琛ㄥ崟鎻愪氦

<!doctype html>
<html>
<head>
<meta charset="gbk">
<title>鐧婚檰</title>
</head>

<body>
<a href="project01.cgi?username=zq" target="_blank" rel="external nofollow" >鐐规垜浼犳暟鎹?lt;/a>
<form action = "project01.cgi">
<input type="hidden" name="model" value="user" />
<input type="hidden" name="fun" value="login" />
鐢ㄦ埛鍚嶏細	<input type="text" name="username" placeholder="璇疯緭鍏ョ敤鎴峰悕" /><br />
瀵嗙爜锛?<input type="password" name="pwd" placeholder="璇疯緭鍏ュ瘑鐮? /><br />
<input name="sex" type="radio" value="1"> 鐢?<input name="sex" type="radio" value="2"> 濂?lt;br />
鎻忚堪锛?lt;textarea name="desc" cols="50" rows="30"></textarea><br />
姘戞棌锛?<select name="quyu">
	<option value="hebei">涓存矀</option>
	<option value="beijing">鍖椾含</option>
	<option value="henan">娌冲崡</option>
</select>
<input type="submit" name="login" value="鐧诲綍" />
</form>
</body>
</html>

char username[256];
char pwd[250];
char desc[256];
char sex[3];
char quyu[256];

if(cgiFormSubmitClicked("login") == cgiFormSuccess){
	cgiFormString("username",username,sizeof(username));
    cgiFormString("pwd",pwd,sizeof(pwd));
    cgiFormString("sex",sex,sizeof(sex));
    cgiFormString("desc",desc,sizeof(desc));
    cgiFormString("quyu",quyu,sizeof(quyu));
    
    cgiHeaderContentType("text/html;charset=gbk");
    //printf(username);
    //printf(pwd);
    fprintf(cgiOut,"<html><head></head><body>");
    fprintf(cgiOut,"鐢ㄦ埛鍚嶏細%s锛屾€у埆锛?s",username,quyu);
    fprintf(cgiOut,"</body></html>");
    return 0;
}
           

Cgi濡備綍鍖哄垎鍝釜椤甸潰鎻愪氦鐨勶紵

#include<stdio.h>
#include <stdlib.h>
 #include<string.h>
 #include"cgic.h"
 
int cgiMain(){
char model [32]={0};
char fun[32]={0};
if(cgiFromString("model",model,sizeof(model))!=cgiFromSuccess){
cgiHeaderContentType("test/html;charset=gbk");
printf("modle鍙傛暟蹇呬紶");
return 0;
}

if(cgiFromString("fun",fun,sizeof(fun))!=cgiFromSuccess){
cgiHeaderContentType("text/html;)charset=gbk"
};
printf("fun鍙傛暟蹇呬紶");
return 0;
}
	if(strcmp(model,"user")==0){
	if(strcmp(fun,"toLogin")==0){
    	cgiHeaderLocation("login.html");
    }
    else if(strcmp(fun,"toRegister")==0){
    	cgiHeaderLocation("register.html");
    }
    else if(strcmp(fun,"login")==0){
    	char username[256];
        char pwd[250];
        cgiFormString("username",username,sizeof(username));
        cgiFormString("pwd",pwd,sizeof(pwd));
        //鏌ヨ鏁版嵁搴撳姣旂敤鎴峰悕瀵嗙爜
        if(strcmp(username,"zq")==0 && strcmp(pwd,"123")==0){
        	cgiHeaderContentType("text/html;charset=gbk");
            printf("鐧诲綍鎴愬姛");
            return 0;
        }
        else{
        	cgiHeaderContentType("text/html;charset=gbk");
            printf("鐢ㄦ埛鍚嶆垨瀵嗙爜閿欒");
            return 0;
        }
    }
}
           

妯℃澘寮曟搸

鏂板缓涓猧ndex.html

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>鏃犳爣棰樻枃妗?lt;/title>
</head>

<body>

	鎮ㄧ殑濮撳悕鏄?lt;TMPL_VAR name="realname"/>,鎮ㄧ殑骞撮緞鏄?lt;TMPL_VAR name="age"/>宀?    <br/>
    <p>鍒楄〃</p>
    <ul>
    	<TMPL_LOOP name="goods">
        	<li>鍟嗗搧鍚嶇О锛?lt;TMPL_VAR name ="goodname">,浠锋牸,<TMPL_VAR name="price">				<li>
        </TMPL_LOOP>
    </ul>
</body>
<html>
           

鐢ㄦ硶

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "cgic.h"
#include "ctemplate.h"

int cgiMain(){
cigHeaderContentType("text/html;charset=gbk");
//寰€鍓嶅彴index.html浼犳暟鎹苟璺宠浆
TMPL_varlist *varlist=0;
TMPL_loop *loopGoods=0;
varlist=TMPL_add_var(varlist,"realname"锛?璧电惁","age","80",0);
//寰幆鐨勫垪琛ㄦ暟鎹?loopGoods=TMPL_add_varlist(loopGoods,TMPL_add_var(0,"goodname","瑁ゅ瓙","price","20",0));
loopGoods=TMPL_add_varlist(loopGoods,TMPL_add_var(0,"goodname","瑜傚瓙","price","20",0));
varlist=TMPL_add_loop(varlist,"goods",loopGoods);
Tmpl_write("index.html",0,0,varlist,cgiOut,cgiOut);
Tmpl_fre_varlist(varlist);
return 0;}