亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? cgi-util.c

?? C-C++源代碼行數計算器SrcLines.zip
?? C
字號:
/*  cgi-util.c    created by Bill Kendrick  kendrick@zippy.sonoma.edu  http://zippy.sonoma.edu/kendrick/    based on "post-query.c" and "query.c" by NCSA    New Breed Software    April 6, 1996 - January 28, 1997*/#include <stdio.h>#ifndef NO_STDLIB_H#include <stdlib.h>#elsechar *getenv();#endif#include <string.h>#include "cgi-util.h"#define LF 10#define CR 13/* THE FOLLOWING ROUTINES ARE (MORE OR LESS) DIRECTLY FROM NCSA'S   "util.c", "post-query.c" AND "query.c" SOURCE CODE: */void getword(char *word, char *line, char stop){  int x, y;    for(x = 0; ((line[x]) && (line[x] != stop)); x++)    word[x] = line[x];    word[x] = '\0';  if (line[x])    ++x;  y=0;    while (line[y++] = line[x++]);}char *makeword(char *line, char stop){  int x,y;  char *word = (char *) malloc(sizeof(char) * (strlen(line) + 1));    for(x = 0; ((line[x]) && (line[x] != stop)); x++)    word[x] = line[x];  word[x] = '\0';  if (line[x])    ++x;  y=0;    while (line[y++] = line[x++]);    return word;}char *fmakeword(FILE *f, char stop, int *cl){  int wsize;  char *word;  int ll;    wsize = 102400;  ll=0;  word = (char *) malloc(sizeof(char) * (wsize + 1));    while (1)    {      word[ll] = (char)fgetc(f);      if (ll==wsize)	{	  word[ll+1] = '\0';	  wsize += 102400;	  word = (char *)realloc(word,sizeof(char)*(wsize+1));        }      --(*cl);      if ((word[ll] == stop) || (feof(f)) || (!(*cl)))	{	  if (word[ll] != stop)	    ll++;	  word[ll] = '\0';	  return word;        }      ++ll;    }}char x2c(char *what){  register char digit;    digit = (what[0] >= 'A' ? ((what[0] & 0xdf) - 'A')+10 : (what[0] - '0'));  digit *= 16;  digit += (what[1] >= 'A' ? ((what[1] & 0xdf) - 'A')+10 : (what[1] - '0'));  return (digit);}void unescape_url(char *url){  register int x,y;    for (x=0, y=0; url[y]; ++x, ++y)    {      if ((url[x] = url[y]) == '%')	{	  url[x] = x2c(&url[y+1]);	  y+=2;        }    }  url[x] = '\0';}void plustospace(char *str){  register int x;    for (x=0; str[x]; x++)    if (str[x] == '+')      str[x] = ' ';}int rind(char *s, char c){  register int x;    for (x = strlen(s) - 1; x != -1; x--)    if(s[x] == c) return x;  return -1;}int getline(char *s, int n, FILE *f){  register int i=0;    while(1)    {      s[i] = (char)fgetc(f);            if (s[i] == CR)	s[i] = fgetc(f);            if ((s[i] == 0x4) || (s[i] == LF) || (i == (n-1)))	{	  s[i] = '\0';	  return (feof(f) ? 1 : 0);        }      ++i;    }}void send_fd(FILE *f, FILE *fd){  int num_chars=0;  char c;    while (1)    {      c = fgetc(f);      if(feof(f))	return;      fputc(c,fd);    }}int ind(char *s, char c){  register int x;    for (x=0; s[x]; x++)    if(s[x] == c)      return x;    return -1;}void escape_shell_cmd(char *cmd){  register int x,y,l;    l=strlen(cmd);  for (x=0; cmd[x]; x++)    {      if (ind("&;`'\"|*?~<>^()[]{}$\\",cmd[x]) != -1)	{	  for(y = l + 1; y > x; y--)	    cmd[y] = cmd[y-1];	  l++;	  cmd[x] = '\\';	  x++;        }    }}/* CALL cgiinit() AT THE BEGINNING OF YOUR PROGRAM TO COLLECT THE FORM   OR URL-ENCODED VALUES SENT TO THE CGI.  IT TRANSPARENTLY CAN TELL   IF YOUR PROGRAM WAS ACCESSED VIA "POST" OR "GET" METHODS, OR EVEN   VIA THE SHELL! */void cgiinit(void){  register int x;  int cl;  char * qcl;      if (getenv("REQUEST_METHOD") == NULL)    {      VIA_SHELL = 1;      NUM_ENTRIES = 0;    }  else    {      VIA_SHELL = 0;      if (strcmp(getenv("REQUEST_METHOD"),"POST") == 0)	{	  if(strcmp(getenv("CONTENT_TYPE"),		    "application/x-www-form-urlencoded"))	    {	      printf("Content-type: text/html\n\n");	      printf("<h1>Incorrect Type</h1>\n");	      printf("Type must be 'application/x-www-form-urlencoded'.\n");	      	      exit(0);	    }	  	  cl = atoi(getenv("CONTENT_LENGTH"));	  	  for (x = 0; cl && (!feof(stdin)); x++)	    {	      NUM_ENTRIES = x;	      strcpy(entries[x].val, fmakeword(stdin,'&',&cl));	      plustospace(entries[x].val);	      unescape_url(entries[x].val);	      strcpy(entries[x].name, makeword(entries[x].val,'='));	    }	}      else if (strcmp(getenv("REQUEST_METHOD"),"GET") == 0)	{	  qcl = getenv("QUERY_STRING");	  if (qcl == NULL)	    exit(0);	  	  for (x = 0; qcl[0] != '\0'; x++)	    {	      NUM_ENTRIES = x;	      getword(entries[x].val, qcl, '&');	      plustospace(entries[x].val);	      unescape_url(entries[x].val);	      getword(entries[x].name, entries[x].val, '=');	    }	}      else	{	  printf("Content-type: text/html\n\n");	  printf("<h1>Unknown method</h1>\n");	  printf("The form was submitted with an unknown method!\n");	  	  exit(0);	}    }}/* THIS SEARCHES THE LIST OF FORM ENTRIES COLLECTED BY "cgiinit" FOR A   PARTICULARLY NAMED FIELD ("s").  IT RETURNS THE STRING SENT IN   (through "buf").  IF THE FIELD IS NOT FOUND, AN EMPTY STRING IS RETURNED. */void getentry(char * buf, char *s){  int x;    strcpy(buf,"");    if (VIA_SHELL == 0)    {      for (x = 0; x <= NUM_ENTRIES; x++)	if (strcmp(entries[x].name,s) == 0)	  strcpy(buf,entries[x].val);    }  else    {      printf("CGI-UTIL: \"%s\" ? ", s);      fgets(buf, 512, stdin);      buf[strlen(buf) - 1] = '\0';    }}/* THIS IS THE SAME AS "getentry", BUT IT RETURNS THE INTEGER VALUE   (using atoi) OF THE STRING FOUND. */int getentryasint(char *s){  char buf[512];  int x, v;    v = 0;    if (VIA_SHELL == 0)    {      for (x = 0; x <= NUM_ENTRIES; x++)	if (strcmp(entries[x].name,s) == 0)	  v = atoi(entries[x].val);    }  else    {      printf("CGI-UTIL: \"%s\" ? ", s);      fgets(buf, 512, stdin);      buf[strlen(buf) - 1] = '\0';      v = atoi(buf);    }    return(v);}/* THIS IS THE SAME AS "getentry", EXCEPT IT RETURNS "1" IF THE VALUE FOUND   IS "on" or "yes" (CASE-INSENSITIVE), "0" IF THE VALUE FOUND IS "off" or   "no" (CASE-INSENSITIVE), OR "def" OTHERWISE. */int getentryyesno(char *s, int def){  char temp[512];  int x, v;   v = def;    getentry(temp, s);    if (strcasecmp(temp, "yes") == 0 ||      strcasecmp(temp, "on") == 0)    v = 1;  else if (strcasecmp(temp, "no") == 0 ||	   strcasecmp(temp, "off") == 0)    v = 0;    return(v);}/* THIS OPENS A FILE AND DUMPS IT DIRECTLY TO "stdout" (IN A CGI'S CASE,   THE BROWSER).  IF THE FILE CAN'T BE OPENED, "-1" IS RETURNED, ELSE "0". */int dump_no_abort(char * filename){  FILE * fi;  int c;    fi = fopen(filename, "r");  if (fi == NULL)    return(-1);  else    {      do	{	  c = fgetc(fi);	  if (c != EOF)	    fputc(c, stdout);	}      while (c != EOF);      fclose(fi);            return(0);    }}/* THIS IS THE SAME AS "dump_no_abort", EXCEPT IF THE FILE CANNOT BE OPENED,   A MESSAGE IS DISPLAYED AND THE PROGRAM IS ABORTED. */void dump(char * filename){  if (dump_no_abort(filename) == -1)    {      printf("Can't open %s\n", filename);      exit(0);    }}/* THIS DISPLAYS AN EXTREMELY SIMPLY "ERROR" MESSAGE IN HTML */void error(char * reason){  printf("<h1>Error</h1>\n");  printf("%s\n", reason);    exit(0);}/* THIS CHECKS AN E-MAIL ADDRESS TO SEE IF IT'S FORMATTED CORRECTLY *//* Returns "1" on good, "0" on bad. *//* E-mail should be in "name@site.ext" format.  You'd be surprised how   many people DON'T know this! <sigh!> */int goodemailaddress(char * addr){  if (strchr(addr, '@') == NULL)    return 0;    if (addr[strlen(addr - 1)] == '@' ||      addr[strlen(addr - 1)] == '.')    return 0;    if (strchr(strchr(addr, '@'), '.') == NULL)    return 0;    if (strchr(addr, ' ') != NULL)    return 0;    if (addr[0] == '@' || addr[0] == '.')    return 0;    return 1;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美xxxxxxxxx| 91黄色免费版| 国产精品国产三级国产a| 亚洲一区二区三区在线看| 成人听书哪个软件好| 亚洲一区二区视频在线| 国产欧美日韩在线观看| 91.麻豆视频| 91免费看片在线观看| 国产露脸91国语对白| 午夜精品久久久久久久99水蜜桃| 国产精品久久久久久久久久久免费看 | 国产一区二区视频在线| 国产大陆a不卡| 亚洲成人av资源| 国产精品不卡在线观看| 久久久久久久综合日本| 欧美一二三在线| 91成人看片片| 日本电影亚洲天堂一区| 成人一级片在线观看| 国产一区二区不卡在线| 日韩成人午夜电影| 午夜视频在线观看一区二区| 亚洲日本在线天堂| 欧美激情一区二区三区蜜桃视频| 欧美一卡二卡在线观看| 欧美日韩一区在线观看| 一本色道亚洲精品aⅴ| 成人app网站| 成人av在线影院| 国产精品77777| 国产美女在线精品| 国产精品中文字幕一区二区三区| 麻豆久久久久久久| 久久99久久精品欧美| 日韩av电影天堂| 日韩av中文在线观看| 日韩国产成人精品| 另类欧美日韩国产在线| 久久er99精品| 国产麻豆精品在线观看| 国产精品一区二区三区四区| 国产精品18久久久久久vr| 国产美女视频一区| 国产成人自拍网| 国产成人精品亚洲777人妖| 欧美偷拍一区二区| 亚洲国产视频在线| www.综合网.com| 99re热这里只有精品视频| fc2成人免费人成在线观看播放| www.日本不卡| 欧美综合亚洲图片综合区| 精品视频资源站| 91精品国产黑色紧身裤美女| 日韩欧美一区二区视频| 色丁香久综合在线久综合在线观看| 成人精品国产一区二区4080| av成人老司机| 精品国免费一区二区三区| 色悠悠亚洲一区二区| 夜夜精品视频一区二区| 国产日韩欧美精品电影三级在线| 精品裸体舞一区二区三区| 欧美色图免费看| 欧美无乱码久久久免费午夜一区| 3d动漫精品啪啪| 自拍偷拍亚洲欧美日韩| 久久综合九色综合久久久精品综合| 欧美精品一区二区三区很污很色的| 久久人人超碰精品| 亚洲人成7777| 免费人成黄页网站在线一区二区| 国产麻豆精品在线观看| 91九色02白丝porn| 日韩一区二区三区精品视频| 久久影院视频免费| 一区二区三区鲁丝不卡| 久久99精品久久久久久国产越南| 高清在线成人网| 欧美色图片你懂的| 久久精品欧美一区二区三区麻豆| 亚洲美女在线一区| 黄色日韩网站视频| 在线亚洲欧美专区二区| 精品免费国产二区三区| 亚洲欧美偷拍另类a∨色屁股| 人禽交欧美网站| 99精品视频一区二区| 日韩欧美一级二级三级久久久 | 国产亚洲欧美一级| 亚洲午夜电影在线| 高清久久久久久| 7777精品伊人久久久大香线蕉最新版 | 国模娜娜一区二区三区| 91美女在线看| 久久久亚洲国产美女国产盗摄| 一区二区三区欧美日| 国模套图日韩精品一区二区 | 国产午夜亚洲精品不卡| 一级精品视频在线观看宜春院| 精品一区二区日韩| 欧美在线观看视频在线| 国产精品天干天干在线综合| 日韩精品一区第一页| 91理论电影在线观看| 国产日韩精品久久久| 蜜桃久久久久久| 欧美图片一区二区三区| 亚洲视频在线一区| 懂色av一区二区在线播放| 精品久久99ma| 免费人成网站在线观看欧美高清| 91黄色免费网站| 亚洲女人的天堂| 成人av免费在线| 国产色产综合产在线视频| 免费不卡在线视频| 欧美日韩国产大片| 亚洲一区二区三区四区在线免费观看 | 久久久影视传媒| 日本女优在线视频一区二区| 欧美天天综合网| 中文字幕亚洲视频| 成人免费视频免费观看| 免费人成在线不卡| 国产精品色噜噜| 韩日欧美一区二区三区| 91精品国产综合久久久久久漫画 | 亚洲日本va午夜在线影院| 国产69精品久久99不卡| 精品国产百合女同互慰| 久久国产精品色| 欧美一级二级在线观看| 美女在线一区二区| 欧美一级免费大片| 老司机免费视频一区二区三区| 欧美一级二级三级蜜桃| 久久综合综合久久综合| 精品美女被调教视频大全网站| 激情av综合网| 欧美国产日本视频| 97se亚洲国产综合自在线不卡| 亚洲三级在线播放| 欧美怡红院视频| 舔着乳尖日韩一区| 欧美成人一区二区三区在线观看| 久久成人18免费观看| 亚洲国产成人在线| 91美女片黄在线| 亚洲成人黄色影院| 欧美一级搡bbbb搡bbbb| 国产专区欧美精品| 欧美高清在线一区二区| 色综合av在线| 国产日产欧美一区二区视频| 国产精品美女久久久久久久 | 免费观看在线综合色| 日韩欧美国产小视频| 国产ts人妖一区二区| 亚洲精品ww久久久久久p站| 色偷偷久久人人79超碰人人澡| 亚洲一区二区三区在线播放| 日韩精品在线一区| 国产91精品一区二区麻豆亚洲| 中文字幕亚洲一区二区av在线| 欧美亚洲综合在线| 麻豆成人久久精品二区三区红| 国产丝袜美腿一区二区三区| 91啪亚洲精品| 青草av.久久免费一区| 国产亚洲欧美在线| 欧美日韩免费在线视频| 精品一区二区三区久久| 亚洲欧洲在线观看av| 欧美精品高清视频| 国产成人无遮挡在线视频| 亚洲综合男人的天堂| 精品久久国产字幕高潮| 色婷婷av一区二区三区大白胸 | 日本美女一区二区三区| 国产视频一区二区在线观看| 欧美在线观看一区二区| 国产剧情一区二区| 五月婷婷激情综合| 国产精品全国免费观看高清| 欧美精品一级二级| 成人丝袜高跟foot| 另类小说一区二区三区| 夜夜夜精品看看| 欧美激情一区二区三区四区| 日韩一区二区高清| 一本色道亚洲精品aⅴ| 国产乱子轮精品视频| 天天做天天摸天天爽国产一区| 国产精品理伦片| 欧美xxx久久| 在线观看91视频| av亚洲精华国产精华精华|