Ejemplo n.º 1
0
int main(int argc, char *argv[])
{
	char	**pVars;
	int		loopCount = 1000;
	time_t	second;
	
	
	char *data; 
	long m,n; //Modify By LuiShiLi 2011.10.11

/*
 *	Print the CGI response header, required for all HTML output.
 *	Note the extra \n, to send the blank line.
 */
    printf("Content-type: text/html\n\n") ;
/*	
 *	Print the HTML header to STDOUT.
 */
    printf("<html>\n");
    printf("<head><title>CGI Output</title></head>\n");
    printf("<body>\n");

    printf("<H1>CGI Test Program</H1>\n");
    printf("<P>This program displays the CGI Enviroment</P>\n");
	

	printf("Content-type: text/html/n/n") ;
	printf("< TITLE >乘法结果< /TITLE > "); 
	printf("< H3 >乘法结果< /H3 > "); 
	data = getenv("QUERY_STRING"); 
	if(data == NULL) 
		printf("< P >错误!数据没有被输入或者数据传输有问题"); 
	else if(sscanf(data,"m=%ld&n=%ld",&m,&n)!=2) 
		printf("< P >错误!输入数据非法。表单中输入的必须是数字。"); 
	else 
		printf("< P >%ld和%ld的成绩是:%ld。",m,n,m*n); 		//Modify By LuiShiLi 2011.10.11

/*	
 *	Print the CGI environment variables
 */
    printf("<H2>Environment Variables<A NAME=\"env\"></A></H2>\n");
    printf("<P>REQUEST METHOD = %s</P>\n", gogetenv("REQUEST_METHOD"));
    printf("<P>QUERY STRING = %s</P>\n", gogetenv("QUERY_STRING"));
    printf("<P>GATEWAY INTERFACE = %s</P>\n", gogetenv("GATEWAY_INTERFACE"));
    printf("<P>SCRIPT NAME = %s</P>\n", gogetenv("SCRIPT_NAME"));

    printf("<P>PATH TRANSLATED = %s</P>\n", gogetenv("PATH_TRANSLATED"));
    printf("<P>PATH INFO = %s</P>\n", gogetenv("PATH_INFO"));

    printf("<P>HTTP HOST = %s</P>\n", gogetenv("HTTP_HOST"));
    printf("<P>HTTP ACCEPT = %s</P>\n", gogetenv("HTTP_ACCEPT"));
    printf("<P>HTTP CONNECTION = %s</P>\n", gogetenv("HTTP_CONNECTION"));

    printf("<P>REMOTE USER = %s</P>\n", gogetenv("REMOTE_USER"));
    printf("<P>REMOTE HOST = %s</P>\n", gogetenv("REMOTE_HOST"));
    printf("<P>REMOTE ADDR = %s</P>\n", gogetenv("REMOTE_ADDR"));

    printf("<P>SERVER NAME = %s</P>\n", gogetenv("SERVER_NAME"));
    printf("<P>SERVER PORT = %s</P>\n", gogetenv("SERVER_PORT"));
    printf("<P>SERVER HOST = %s</P>\n", gogetenv("SERVER_HOST"));
    printf("<P>SERVER PROTOCOL = %s</P>\n", gogetenv("SERVER_PROTOCOL"));
    printf("<P>SERVER ADDR = %s</P>\n", gogetenv("SERVER_ADDR"));
    printf("<P>SERVER URL = %s</P>\n", gogetenv("SERVER_URL"));
    printf("<P>SERVER SOFTWARE = %s</P>\n", gogetenv("SERVER_SOFTWARE"));

/*	
 *	Print the parsed query string variables
 */
    printf("<H2>Query String Variables<A NAME=\"query\"></A></H2>\n");
    pVars = getCGIvars();
	if (pVars) 
	{
		while (*pVars && *(pVars + 1)) 
		{
			printf("<p>%s = <b>%s</b></p>\n", *pVars, *(pVars + 1));
			pVars += 2;
		}
	} 
	else 
	{
	    printf("<P>No query variables found</P>\n");
	}

/*	
 *	Print 1000 lines of text, 100 lines at a time.
 *	Pause for 5 seconds every 100 line chunk
 */
#ifdef PRINT_BIG_CHUNK_SLOWLY
    printf("<H2>Large chunk of meaningless text<A NAME=\"chunk\"></A></H2>\n");
	while (loopCount) 
	{
		printf("<p>Meaningless line of text number %d.</p>\n", loopCount);
		if ((loopCount % 100) == 0) 
		{
			second = time(NULL);
			while ((time(NULL) - second) < 5)
			{
			}
		}
		loopCount--;
	}
#endif

    printf("</body>\n");
    printf("</html>\n");

    return 0;
}
Ejemplo n.º 2
0
int _tmain(int argc, _TCHAR* argv[])
{
#if CGI
    char_t buf[256];
    int nread = 0;
//初始化,必须调用
    if(init(argc, argv)<0) {
        wprintf(L"[-] cgi file open failed\n");
        exit(-1);
    }

    write_data(L"<html>\n");
    write_data(L"<head><title>CGI Output</title></head>\n");
    write_data(L"<body>\n");

    write_data(L"<H1>CGI Test Program</H1>\n");
    write_data(L"<P>This program displays the CGI Enviroment</P>\n");

    /*
     *	Print the CGI environment variables
     */
    write_data(L"<H2>Environment Variables<A NAME=\"env\"></A></H2>\n");
    write_data(L"<P>REQUEST METHOD = %s</P>\n", gogetenv(L"REQUEST_METHOD",buf));
    write_data(L"<P>QUERY STRING = %s</P>\n", gogetenv(L"QUERY_STRING",buf));
    write_data(L"<P>PATH TRANSLATED = %s</P>\n", gogetenv(L"PATH_TRANSLATED",buf));
    write_data(L"<P>GATEWAY INTERFACE = %s</P>\n", gogetenv(L"GATEWAY_INTERFACE",buf));
    write_data(L"<P>SCRIPT NAME = %s</P>\n", gogetenv(L"SCRIPT_NAME",buf));


    write_data(L"<P>PATH INFO = %s</P>\n", gogetenv(L"PATH_INFO",buf));

    write_data(L"<P>HTTP HOST = %s</P>\n", gogetenv(L"HTTP_HOST",buf));
    write_data(L"<P>HTTP ACCEPT = %s</P>\n", gogetenv(L"HTTP_ACCEPT",buf));
    write_data(L"<P>HTTP CONNECTION = %s</P>\n", gogetenv(L"HTTP_CONNECTION",buf));

    write_data(L"<P>REMOTE USER = %s</P>\n", gogetenv(L"REMOTE_USER",buf));
    write_data(L"<P>REMOTE HOST = %s</P>\n", gogetenv(L"REMOTE_HOST",buf));
    write_data(L"<P>REMOTE ADDR = %s</P>\n", gogetenv(L"REMOTE_ADDR",buf));

    write_data(L"<P>SERVER NAME = %s</P>\n", gogetenv(L"SERVER_NAME",buf));
    write_data(L"<P>SERVER PORT = %s</P>\n", gogetenv(L"SERVER_PORT",buf));
    write_data(L"<P>SERVER HOST = %s</P>\n", gogetenv(L"SERVER_HOST",buf));
    write_data(L"<P>SERVER PROTOCOL = %s</P>\n", gogetenv(L"SERVER_PROTOCOL",buf));
    write_data(L"<P>SERVER ADDR = %s</P>\n", gogetenv(L"SERVER_ADDR",buf));
    write_data(L"<P>SERVER URL = %s</P>\n", gogetenv(L"SERVER_URL",buf));
    write_data(L"<P>SERVER SOFTWARE = %s</P>\n", gogetenv(L"SERVER_SOFTWARE",buf));
    write_data(L"<P>CGI_Data = %s</P>\n", getCgiData(buf,sizeof(buf),&nread));
    write_data(L"<P>CGI_Size = %d</P>\n", nread);
    write_data(L"<P>out = %s</P>\n", argv[argc-1]);
    write_data(L"<P>in = %s</P>\n", argv[argc-2]);
    write_data(L"<P>env = %s</P>\n", argv[argc-3]);

#endif

#if 0
    int 	nWidth,nHeight;
    HBITMAP MyhBitmap;

    MyhBitmap = CopyScreenToBitmap(&nWidth, &nHeight );
    wprintf(L"width=%d\t,height=%d\n",nWidth, nHeight);
    //Save16BitmapToFile( MyhBitmap, L"\\NandFlash\\go.bmp");
    Save16BitmapToFile( MyhBitmap, L"go.bmp");
    wprintf(L"xxxxxxxxxxx");

#endif
#if CGI
//销毁资源
    destroy();
#endif
    return 0;
}