在做嵌入式WEB服务器的时候出现下面这个问题:
通过浏览器登录服务器是浏览器页面显示下面信息:
502 Bad Gateway
The CGI was not CGI/1.1 compliant.
终端错误输出为:
[31/Dec/1999:18:27:05 +0000] cgi_header: unable to find LFLF
cgi的程序源文件login.c为:
- #include <stdio.h>
- #include <stdlib.h>
- int main(void)
- {
- char *str_len=NULL;
- int len=0;
- char buf[100]="";
- char user[20]="";
- char passwd[20]="";
-
- printf("%s\n\n","Content-Type:text/html");
- printf("\n\nCGI3:登录结果
\n");
- str_len = getenv("CONTENT_LENGTH");
- if( (str_len==NULL) || (sscanf(str_len, "%d", &len)!=1) || (len>80) )
- printf("sorry!error!");
- fgets(buf, len+1, stdin);
- sscanf(buf, "name=%[^&]&password=%s", user,passwd);
- if( (strncmp(user,"root",4)==0) && (strncmp(passwd, "111111", 6)==0) )
- {
- printf("");
- }
-
- else
- printf("
Sorry! 用户名或密码错误!"
);
- return 0;
- }
出现这个错误的原因就在于上面程序的第12行中漏掉了输出字符串结束时的两个换行。这两个换行必须要。而且一定要写成:
- printf("%s\n\n","Content-Type:text/html");
阅读(3703) | 评论(0) | 转发(1) |