C / HTML:正确打印用户的用户名和密码输入

时间:2016-10-27 14:48:11

标签: html c forms cgi

几天前我开始尝试使用C / CGI / HTML。我被一些登录页面程序激怒了,所以我试着自己动手:

这是我的计划:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(void)
{
  char *data;
  char *user;
  char *password;
  printf("Content-type:text/html\r\n\r\n");
  printf("<!DOCTYPE html><html><head><title>Hello</title></head><body>");
  data = getenv("QUERY_STRING");
  if (data) {
    sscanf(data,"user=%s&password=%s", user, password);
    printf("Hello Mr./Ms. %s\n",user);
    printf("You entered your password %s\n",password);
  }
  printf("<form action='http://localhost/10.html'>");
  printf("<input type=text name=user>");
  printf("<input type=password name =password>");
  printf("</body></html>");
  exit(EXIT_SUCCESS);
 }

每当我执行我的HTML文件时:

输入:

用户名= 123 密码= 123

这是该程序给我的输出:

 Hello Mr./Ms. 123&password=123 You entered your password (null) 

知道怎么解决这个问题吗?谢谢!

1 个答案:

答案 0 :(得分:0)

在你的代码中

char *user;
char *password;

userpassword只是未经初始化的指针。

你需要这个:

char user[100];
char password[100];

但最有可能是其他CGI和sscanf相关的问题。