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

📄 gcgicookietest.c

📁 C/C++语言的CGI接口库
💻 C
字号:
#include <stdlib.h>#include <stdio.h>#include <unistd.h>#include "gcgi.h"#define SETCOOKIES  1#define READCOOKIES 2#define STOREHEADERS 3static const char* const strTypes[] = {    "text",     "image",     "audio",     "video",     "application",     "multipart",     "message",     "unknown"};static const char* const strEncodings[] = {    "7bit",     "8bit",     "binary",     "quoted-printable",     "base64",     "unknown"};int main (int argc, char *argv[], char *envp[]) {  int             caseAct, i;  char          **cookies, *name, *value;  /* Set Limits: field limit, query limit */  gcgiSetLimits(1048576, 0);  //gcgiDebug("./gcgi-env", "./mimedata2");  if (initCgi() < 0) {    fprintf(stderr, "Unable to parse CGI query.\n");    return -1;  }    gcgiFetchInteger("caseAct", &caseAct, -1);  cookies = NULL;  if (caseAct == SETCOOKIES) {#ifdef USE_SSL    gcgiGenerateKey(&key);    gcgiWriteKeyToFile(key, "/tmp/gcgiCookieTest.key");#endif    gcgiSendContentType("text/html", NULL, "ISO-8859-1", COOKIE);#ifdef USE_SSL    gcgiSendEncryptedCookie("ticket1", "ThisIsTheFirstCookie", "/", "topeka.shingletowngap.org", NULL, 0, key, COOKIE);    gcgiSendEncryptedCookie("ticket2", "ThisIsTheSecondCookie", "/", "topeka.shingletowngap.org", NULL, 0, key, LAST);#else    gcgiSendCookie("ticket1", "ThisIsTheFirstCookie", "/", "topeka.shingletowngap.org", NULL, 0, COOKIE);    gcgiSendCookie("ticket2", "ThisIsTheSecondCookie", "/", "topeka.shingletowngap.org", NULL, 0, LAST);#endif  }  else if (caseAct == READCOOKIES) {#ifdef USE_SSL    gcgiReadKeyFromFile("/tmp/gcgiCookieTest.key", &key);    unlink("/tmp/gcgiCookieTest.key");#endif    gcgiSendContentType("text/html", NULL, "ISO-8859-1", LAST);    gcgiFetchCookies(&cookies);  }  else if (caseAct == STOREHEADERS) {    gcgiSaveEnvVariables("./gcgiCookieTest-output.txt");    gcgiSendContentType("text/html", NULL, "ISO-8859-1", LAST);  }  fprintf(gcgiOut, 	  "<html>\n"	  "<head><title>gcgiCookieTest: Results</title></head>\n"	  "<body>\n"	  "<h1>Transaction completed successfully.</h1>\n");  if (cookies != NULL) {    for (i = 0; cookies[i] != '\0'; i++) {#ifdef USE_SSL            gcgiParseEncryptedCookie(cookies[i], key, &name, &value);#else      gcgiParseCookie(cookies[i], &name, &value);#endif      fprintf(gcgiOut, 	      "Cookie #%d: %s<br>\n"	      "<b>Decoded and Parsed Cookie:</b> Name: %s, Value: %s, Size: %d<br>\n",	      i+1, cookies[i], name, value, strlen(value));      free(name);      free(value);    }    gcgiFreeCookies(cookies);  }  fprintf(gcgiOut,	  "</body>\n"	  "</html>\n");  freeCgi();#ifdef USE_SSL  free(key);#endif  return 0;}

⌨️ 快捷键说明

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