zoukankan      html  css  js  c++  java
  • 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;
    }

  • 相关阅读:
    BZOJ2039: [2009国家集训队]employ人员雇佣
    BZOJ2542: [Ctsc2001]终极情报网
    BZOJ2140: 稳定婚姻
    BZOJ3280: 小R的烦恼
    BZOJ3258: 秘密任务
    BZOJ2400: Spoj 839 Optimal Marks
    BZOJ3171: [Tjoi2013]循环格
    BZOJ1758: [Wc2010]重建计划
    BZOJ3175: [Tjoi2013]攻击装置
    机房破解程序
  • 原文地址:https://www.cnblogs.com/hnrainll/p/2068469.html
Copyright © 2011-2022 走看看