原创 【原创】嵌入式CGI开发之旅——番外

2009-9-1 10:55 3294 3 7 分类: MCU/ 嵌入式
前面提到,那个C源程序有点问题,其实就是HTML标签没有安装XHTML的规范来写,现在贴出更改后的mian函数

int main(void)
{
char *lenstr;
char input[MAXINPUT], data[MAXINPUT];
long len;
//printf("%s%c%c\n\n","Content-Type:text/html;charset=iso-8859-1",13,10);
printf("Content-Type:text/html\n\n");
printf("<html>\n");
printf("<head>\n<title>Response</title>\n</head>\n");
printf("<body>\n");
lenstr = getenv("CONTENT_LENGTH");
if(lenstr == NULL || sscanf(lenstr,"%ld",&len)!=1 || len > MAXLEN)
  printf("<p>Error in invocation - wrong FORM probably.</p>\n");
else {
  FILE *f;
  fgets(input, len+1, stdin);
  unencode(input+EXTRA, input+len, data);
  f = fopen(DATAFILE, "a");
  if(f == NULL)
    printf("<p>Sorry, cannot store your data.</p>\n");
  else
    fputs(data, f);
  fclose(f);
  printf("<p>Thank you! Your contribution has been stored.</p>\n");
  }
printf("</body>\n</html>\n");
return 0;
}
PARTNER CONTENT

文章评论4条评论)

登录后参与讨论

用户360578 2011-7-18 09:45

刚才没说清楚,f = fopen(DATAFILE, "a");不是要求文件必须存在,而是要求路径必须存在。即"../data/"必须存在,因为fopen函数不会去创建路径

用户360578 2011-7-15 18:05

我复制了楼主的代码,发现代码有点问题 else fputs(data, f); fclose(f); 应该把else后面的两行代码用{}包起来,否则,如果要被添加数据的文件不存在 #define DATAFILE "../data/data.txt" fopen打开失败,f==NULL,那么执行fclose(f)就会出错,页面就会显示: 502 Bad Gateway The CGI was not CGI/1.1 compliant. 因为楼主的代码: f = fopen(DATAFILE, "a"); 就是要求文件必须已经存在 那些想尽办法没有还是不能解决502 Bad Gateway问题的朋友,可以检查一下要被添加数据的文件是不是存在,路径有没有问题。

用户1550453 2011-6-29 10:46

楼上这位兄弟,你的问题应该是权限问题,把boa的配置user nobody 改为 user root 就没问题了。

用户226642 2009-10-19 16:18

我倒霉!改成这样,还是不行。还是502错误
相关推荐阅读
huotingtu_505472073 2014-01-12 22:18
嵌入式程序员面试问题集锦
这个测试适于不同水平的应试者,大多数初级水平的应试者的成绩会很差,经验丰富的程序员应该有很好的成绩。为了让你能自己决定某些问题的偏好,每个问题没有分配分数,如果选择这些考题为你所用,请自行按你的意...
huotingtu_505472073 2011-04-14 23:24
【转】一种实用的步进电机驱动电路
1 引言步进电动机是一种将电脉冲信号转换成角位移或线位移的精密执行元件,由于步进电机具有控制方便、体积小等特点,所以在数控系统、自动生产线、自动化仪表、绘图机和计算机外围设备中得到广泛应用。微电子学的...
huotingtu_505472073 2011-04-14 23:22
【转】几种微型电机驱动电路分析
 以下所述电路用于3V供电的微型直流电机的驱动,这种电机有两根引线,更换两根引线的极性,电机换向。该驱动电路要求能进行正反转和停止控制。 电路一: 如下图所示,这电路是作者最初设计的电路,P1.3、P...
huotingtu_505472073 2011-02-18 19:57
【转】集成运放组成的电压比较器
1. 功能及应用:主要用来判断输入信号电位之间的相对大小,它至少有两个输入端及一个输出端,通常用一个输入端接被比较信号Ui,另一个则接基准电压VR 定门限电压(或称阀值)的UT。输出通常仅且仅有二...
huotingtu_505472073 2011-01-26 08:05
【转】直流无刷电动机工作原理与控制方法12
研究结果表明,在半导体薄片上产生的霍尔电动势E可用下式表示: 式中RH ——霍尔系数(  );IH——控制电流(A);B——磁感应强度(T);d——薄片厚度(m);p——材料电阻率(Ω*s);...
huotingtu_505472073 2011-01-26 07:55
【转】直流无刷电动机工作原理与控制方法1
序言   由于直流无刷电动机既具有交流电动机的结构简单、运行可靠、维护方便等一系列优点,又具备直流电动机的运行效率高、无励磁损耗以及调速性能好等诸多优点,故在当今国民经济各领域应用日益普及。   一个...
我要评论
4
3
关闭 站长推荐上一条 /3 下一条