CGI编程学习4 登陆窗口

目的:

写一个登录窗口,输入帐号和密码,正确时返回成功.不正确时返回失败.

下面看下 html代码:

<html>
<head>
<TITLE>CGI3:登录</TITLE>
</head>
</body>
<FORM ACTION="/cgi-bin/demo3.cgi" METHOD="POST">
<P>用户名:<INPUT NAME="name"><BR>
<P>用户名:<INPUT TYPE="password" NAME="password"><BR>
<INPUT TYPE="SUBMIT" VALUE="确定">
</FORM>
</body>
</html>

注意:

1.<P>用户名:<INPUT TYPE="password" NAME="password"><BR>

这句表示文字域是用来输入密码的.在其中输入的内容用以点表示.

2.表单的方式是POST.

效果如图:

下面看下.CGI部分代码:

#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\r\n\r\n","Content-Type:text/html");//CGI标准头
printf("<html>\n<TITLE>CGI3:登录结果</TITLE><br>\n");
str_len
= getenv("CONTENT_LENGTH");//获取输入字符长度
//如果str_len没有赋值成功,如果str_len有多过数值,如果len大于80则打印出错
if( (str_len==NULL) || (sscanf(str_len, "%d", &len)!=1) || (len>80) )
printf(
"sorry!error!");
fgets(buf, len
+1, stdin); //从标准输入中读取len个字符
sscanf(buf, "name=%[^&]&password=%s", user,passwd);//格式化输入获得登陆名和密码
if( (strncmp(user,"wenhao",6)==0) && (strncmp(passwd, "111111", 6)==0) )
printf(
"<body><h1>Welcome! 登录成功!</h1></body></html>");
else
printf(
"<body><h1>Sorry! 用户名或密码错误!</h1></body></html>");
return 0;
}

posted @ 2011-06-02 14:18  hnrainll  阅读(2370)  评论(0编辑  收藏  举报