CGI头声明格式:Context-Type与Content-
同样是POST模式下,开头声明的printf格式Context-Type与Content-Type却有很大不同.
Context-Type: printf("Context-Type:text/html;charset=UTF-8\n\n"); -----网页不识别html格式语言,都原样输出在网页上.如果cgi里面没有html格式语言,只是做其他处理,对结果没有影响.
Content-Type: printf("Content-Type:text/html;charset=UTF-8\n\n"); ----网页会识别html语言

代码如下:
#include SQLITE OPEN FAIL\n\n");
#include
#include
#include "sqlite3.h"
#define SQL_SELECT "select name, devid, devname from userinfo where username='sume';"
struct __userinfo{
char name[20];
char dearname[20];
char telephone[12];
char address[200];
char devid[26];
char devname[20];
}user;
int main(void)
{
//声明网页格式
//printf("Content-Type:text/html;charset=UTF-8\n\n");
printf("Context-Type:text/html;charset=UTF-8\n\n");
//获取网页响应
int len = atoi(getenv("CONTENT_LENGTH"));
char buf[100]={0};
int ret = fread(buf, 1, 256, stdin);
//打开SQL
sqlite3 *ppdb = NULL;
ret = sqlite3_open("/mnt/hgfs/Share/program3/userinformation.db", &ppdb);
if(ret != SQLITE_OK)
{
printf("
return -1;
}
char *err = NULL;
char **result = NULL;
//显示本人设备信息内容
int row = 0, col = 0;
result = NULL;
ret = sqlite3_get_table(ppdb, SQL_SELECT, &result, &row, &col, &err);
if(ret != SQLITE_OK)
{
printf("SEE FAIL : %s\n", err);
sqlite3_close(ppdb);
printf("
printf("\n\n");
printf(" 服务器繁忙,请稍后
\n\n");
printf("
printf("
printf("\n\n");
return -1;
}
int i=0, j=0;
for(i=1; i<(row+1); i++)
{
for(j=0; j
//printf("%s ", result[i*col+j]);
//存储表格原信息
switch(j)
{
case 0: strcpy(user.name, result[i*col+j]);break;
case 1: strcpy(user.devid, result[i*col+j]);break;
case 2: strcpy(user.devname, result[i*col+j]);break;
}
}
//printf("\n\n");
}
printf("
");
printf("
");
printf("
");
printf("
");
printf("");
");
printf(""); ");
printf(" 姓名 ");
printf(" 设备名称 ");
printf(" 设备ID ");
printf("
printf(""); ");
printf(" %s ", user.name);
printf(" %s ", user.devname);
printf(" %s ", user.devid);
printf("
printf("
//释放查询结果空间
sqlite3_free_table(result);
//关闭SQL
sqlite3_close(ppdb);
//按键 选择跳转其他页面
printf("");
printf("\n\n");
printf("");
");
printf(""); ");
printf("");
printf("");
printf("
printf("
printf("");
return 0;
}