⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 1.cpp

📁 CGI测试程序的相关代码
💻 CPP
字号:

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

//#include <unistd.h>
//#include <fcntl.h>
//#include <termios.h>
//#include <errno.h>
//#include <sys/types.h>
//#include <pthread.h>


char buff[3]={0,0,0};

int htoi(char *);
int ShowMainHtml();
int ShowWorngHtml();
int UrlDecode(char *loginname,char *loginpassword);
int UserCheck(char *loginname,char *loginpassword);
void nread(void);


int main()
{
	
	char loginname[15];
	char loginpassword[15];
	int logincheck = 0;
	



	printf("Content-Type:text/html\n\n");
	memset(loginname, 0,  15);
	memset(loginpassword, 0,  15);
	UrlDecode(loginname, loginpassword);
	
	//printf("loginname = %s\n", loginname);
	//printf("loginpassword = %s\n", loginpassword);
	logincheck = UserCheck(loginname,loginpassword);
    //	printf("he!");
	if (logincheck == 1)
	{
            ShowMainHtml();
	}
         else if(logincheck == 0)
	{
		ShowWorngHtml();
	}
	return 0;	
	
}

int UrlDecode(char *loginname,char *loginpassword)
{
	//int n;
	int i;
	int m = 0;			//位数
	int j = 0;			//name与password标志
	int k = 0;			//是否需保存内容的标志
	char c;
    int strsize = 0;
	
	if(getenv("CONTENT_LENGTH"))
		strsize = atoi(getenv("CONTENT_LENGTH"));
	for(i = 0;i < strsize;i ++)
	{
		int is_eq = 0;
		c = getchar();
		
		switch(c)
		{
		case '&': 
			{
				j++;
				k = 0;
				m = 0;
				c = '\n';
			}break;
		case '+': c = ' '; break;
		case '%':
			{
				char s[3];
				s[0] = getchar();
				s[1] = getchar();
				s[2] = 0;
				c = htoi(s);
				i += 2;
			} break;
		case '=':
			is_eq = 1;
			k = 1;
			break;
		};
		
		if(j == 0 && k == 2)
		{
			*loginname++ = c;
		}
		else if(j == 1 && k == 2)
		{
			*loginpassword++ = c;
		}
		if(k == 1)
		{
			k++;
		}
		
	}
    fflush(stdout);
	return 1;
}

int UserCheck(char *loginname,char *loginpassword)
{
	
	int i = 0;

	if(!strcmp(loginname,"adm"))
	{
		if(!strcmp(loginpassword,"123456"))
		{
			i=1;
		}
		else i=0;
	}
	else i=0;
	return i;
/*	sqlite3 *db = NULL;
	char *zErrMsg = 0;
	int rc;
	char *sql_query;
	int nrow = 0;
	int ncolumn = 0;  // 查询语句返回的结果集的行数,列数
	char **azResult; //用于保存查询结果集数据
	
	
	rc = sqlite3_open("test.db", &db);
	
	if (rc)
		
	{
		fprintf(stderr,"Can't open database:%s\n",sqlite3_errmsg(db));
		printf("<p>open failure!\n");
		exit(1);
		
	}
	
    //	sql_query = "select * fron tb1";
        rc = sqlite3_get_table(db,"select * from tbl",&azResult,&nrow,&ncolumn,&zErrMsg);		
    //	rc = sqlite3_get_table(db,sql_query,&azResult,&nrow,&ncolumn,&zErrMsg);
	
	if( rc!=SQLITE_OK )
	{
		
		fprintf(stderr, "SQL error: %s\n", zErrMsg);
		
		sqlite3_free(zErrMsg);
		
	}
	
	for(i = 1;i <= nrow; i ++)	//行数
		
	{
        //   printf("hello!");
	if ((!strcmp(azResult[i*ncolumn], loginname)) && (!strcmp(azResult[i*ncolumn+1],loginpassword)))
		{ 
			sqlite3_free_table(azResult);
			sqlite3_close(db);
			return 1;
			
		}
		
	}

	sqlite3_free_table(azResult);
	sqlite3_close(db);
	
	return 0;*/
	
}

int htoi(char *s)
{
	char *digits = " 0123456789ABCDEF";
	if(islower(s[0]))
		s[0] = toupper(s[0]);
	if(islower(s[1]))
		s[1] = toupper(s[1]);
	return 16 * (strchr(digits,s[0]) - strchr(digits,'0')) 
		+ (strchr(digits,s[1]) - strchr(digits,'0'));
}
int ShowMainHtml()
{

	int m;
	int i;
  	
	
	printf("<html>");
                                                                                                                                               
	printf("<head>");
	printf("<meta http-equiv=\"Content-Language\" content=\"zh-cn\">");
	printf("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=gb2312\">");
	
    //printf("<meta http-equiv=\"refresh\" content=\"20\">\n");
	printf("<title>系统平台</title>");
	printf("</head>");
                                                                                                                                               
	printf("<body>");
                                                                                                                                               
	//printf("<p align=\"center\"> </p>");
	//printf("<p align=\"center\"> </p>");
	//printf("<p align=\"center\"> </p>");
	printf("<p align=\"center\"><font color=\"#FF660F\" size=\"6\" face=\"楷体_GB2312\"><b>");
	printf("<h2 align=\"center\">嵌入式远程监控系统</h2></b></font></p>");
    

	           printf("<div align=\"center\">");
               printf("<table border=\"1\" width=\"45%\" id=\"table1\" height=\"255\">");
               printf("<tr><td height=\"46\" width=\"204\">");
               printf("<p align=\"center\"><b>系统参数</b></td>");
               printf("<td height=\"46\">");
               printf("<p align=\"center\"><b>生产状态</b></td>");
               printf("</tr>");
               printf("<tr>");
               printf("<td width=\"204\">");
               printf("<p align=\"left\"><b><font color=\"#FF660F\">当前温度");
			
			  //nread();
              /* if(buff[0] == 1)
                  printf("+");
               else 
				  printf("-");
   			printf("%d.%d\n",buff[1],buff[2]);*/
			printf("</b></td>");
            printf("<td>");
            printf("<p align=\"center\">");
            printf("<input type=\"text\" name=\"T1\" size=\"15\" style=\"font-size: 14pt\"></td>");
            printf("</tr>");
            printf("<tr>");
            printf("<td width=\"204\" height=\"58\"><b><font color=\"#FF660F\">当前压强</b></td>");
                        printf("<td height=\"58\">");
                        printf("<p align=\"center\">");
                        //printf("<p align=\"left\">&nbsp;&nbsp;&nbsp;&nbsp;");
                        printf("<input type=\"text\" name=\"T2\" size=\"15\" style=\"font-size: 14pt\"></td>");
						//printf("<input type=\"button\" value=\"+\" name=\"B1\" style=\"font-family: 宋体; font-size: 14pt; font-weight: bold\">");
						//printf("<b><font face=\"谔?\">&nbsp;&nbsp;&nbsp; ");   
						//printf("温度&nbsp;&nbsp; </font></b>");
                        //printf("<input type=\"button\" value=\"-\" name=\"B2\" style=\"font-family: 宋体; font-size: 14pt; font-weight: bold\"></td>");
                        printf("</tr>");
                        printf("<tr>");
	
	                   /* printf("<td width=\"204\" height=\"87\">");
                        printf("<p align=\"left\"><b>主电源</b></td>");
                        printf("<td height=\"87\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;");
                        printf("<form method=\"POST\" action=\"--WEBBOT-SELF--\">");
                        printf("<!--webbot bot=\"SaveResults\" U-File=\"fpweb:///_private/form_results.csv\" S-Format=\"TEXT/CSV\" S-Label-Fields=\"TRUE\" -->");
                        printf("<p>&nbsp;&nbsp;&nbsp;");
                        printf("<input type=\"button\" value=\"开机\" name=\"B3\" style=\"font-family: 宋体; font-size: 14pt; font-weight: bold\">&nbsp;&nbsp;&nbsp;&nbsp;");
                        printf("<input type=\"button\" value=\"关机\" name=\"B4\" style=\"font-family: 宋体; font-size: 14pt; font-weight: bold\"></p>");
                        printf("</form>");
                        printf("</td>");
                        printf("</tr>");
                        printf("</table>");
                        printf("</div>");*/
                        printf("<p align=\"left\"> </p>");
                                                                                                                                               
                        printf("</body>");
                                                                                                                                               
                        printf("</html>");
                                                                                                                                               

                                                                                                                                               


	return 0;
}
int ShowWorngHtml()
{
	
	printf("<html>");
	printf("<head>");
	printf("<meta http-equiv=\"Content-Type\" content=\"text/html;charset=gb2312\">\n\n");
	printf("<title>登陆失败</title>");
    printf("<tr>");
	printf("<p>你输入的用户名和密码不正确!");
    printf("<div align = \"left\"><a href = \"http://202.193.9.21/index.html\">返回登陆界面</a></div>");
	printf("</body>");
	printf("</html>");
	return 0;
}
/*void nread(void)
{  
   	int fd;
   	struct termios Opt; 
   	int nread;
   	int i;
        //printf("uart1 test!\n");
   	fd = open("/dev/tts/1",O_RDWR);
	   if (-1 == fd)

	    {
		perror("wrong!");
		exit(1);
	    }
 
	Opt.c_cflag |= CS8;//8位数据位
	Opt.c_cflag &= ~PARENB;//无效验位
	//Opt.c_cflag &= ~OPOST;  //原始数据输出
	//Opt.c_cflag &= ~ICANON; //原始数据输入
      	cfsetispeed(&Opt,B4800);
      	cfsetospeed(&Opt,B4800);
	Opt.c_cflag &= ~CSTOPB;  //1位停止位
      	Opt.c_cflag &= ~CRTSCTS; //无硬件控制流
      	Opt.c_cc[VMIN] = 3;
      	tcsetattr(fd ,TCSANOW,&Opt);//设置新属性,TCSANOW:所有改变立即生效

       	//printf("set done!\n");
  	// printf("start recieve\n");
     	nread=read(fd,buff,3);
   	//printf("finish recieve\n");
   	//printf("nread=%d\n",nread); 
//   	for(i = 0;i < 3;i++)  
  // 		{  
   //			printf("buff[%d]=%x\n",i,buff[i]);
   //		}
   	//printf("Bye Bye!\n"); 
    	close(fd);
}
*/



	

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -