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;
}
欢迎访问:wenhao.ink