int main(void) { char *mode, *name, *value; mode = qValue("mode"); name = qValue("cname"); value = qValue("cvalue"); if(mode == NULL) { /* View Cookie */ int amount; qContentType("text/html"); amount = qPrint(); printf("<p>Total %d entries\n", amount); } else if(!strcmp(mode, "set")) { /* Set Cookie */ if(name == NULL || value == NULL) qError("Query not found"); if(!strcmp(name, "")) qError("Empty cookie name can not be stored."); qCookieSet(name, value, 0, NULL, NULL, NULL); qContentType("text/html"); printf("Cookie('%s'='%s') entry is stored.<br>Click <a href='%s'>here</a> to view your cookies\n", name, value, qCGIname()); } else if(!strcmp(mode, "remove")) { /* Remove Cookie */ if(name == NULL) qError("Query not found"); if(!strcmp(name, "")) qError("Empty cookie name can not be removed."); qCookieRemove(name, NULL, NULL, NULL); qContentType("text/html"); printf("Cookie('%s') entry is removed.<br>Click <a href='%s'>here</a> to view your cookies\n", name, qCGIname()); } else qError("Unknown mode."); qFree(); return 0; }
/********************************************** ** Usage : qCookieRemove(name); ** Do : Remove cookie. ** ** ex) qCookieRemove("NAME"); **********************************************/ void qCookieRemove(char *name, char *path, char *domain, char *secure) { /* check content flag */ if (qGetContentFlag() == 1) qError("qCookieRemove(): must be called before qContentType() and any stream out."); qCookieSet(name, "", -1, path, domain, secure); /* if you want to remove cookie variable immediately, uncomment below */ /* qValueRemove(name); */ }