00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef _CGI_H
00022 #define _CGI_H 1
00023
00024 #ifdef __cplusplus
00025 extern "C" {
00026 #endif
00027
00028
00029
00030
00031
00032
00033 typedef struct formvarsA {
00034 char *name;
00035 char *value;
00036 struct formvarsA *next;
00037 } formvars;
00038
00039 extern formvars *formvars_start;
00040 extern formvars *formvars_last;
00041 extern formvars *cookies_start;
00042 extern formvars *cookies_last;
00043
00044 extern int cgi_display_errors;
00045
00046
00047 extern void cgi_init_headers();
00048 extern void cgi_redirect(char *url);
00049 extern void cgi_fatal(const char *error);
00050 extern char *cgi_unescape_special_chars(char *str);
00051 extern char *cgi_espace_special_chars(char *str);
00052 extern char *cgi_param_multiple(const char *name);
00053 extern char *htmlentities(const char *str);
00054 extern int cgi_include(const char *filename);
00055 extern formvars *cgi_process_form();
00056 extern int cgi_init();
00057 extern void cgi_end();
00058 extern int cgi_send_header(const char *header);
00059 #define cgi_param(var_name) List_item(var_name, formvars_start)
00060 #define cgi_send_header(header) printf("%s\n\n", header)
00061
00062
00063
00064 extern int cgi_add_cookie(const char *name, const char *value, const char *max_age, const char *path, const char *domain, const int secure);
00065 extern formvars *cgi_get_cookies();
00066 #define cgi_cookie_value(cookie_name) List_item(cookie_name, cookies_start)
00067
00068
00069 extern int strnpos(char *s, char *ch, unsigned int count);
00070 extern int strpos(char *s, char *ch);
00071 extern char *strdel(char *s, int start, int count);
00072 extern char **explode(char *src, const char *token, int *total);
00073 extern char *substr(char *src, const int start, const int count);
00074 extern char *stripnslashes(char *s, int n);
00075 extern char *addnslashes(char *s, int n);
00076 extern char *stripnslashes(char *s, int n);
00077 extern char *str_nreplace(char *str, const char *delim, const char *with, int n);
00078 extern char *str_replace(char *str, const char *delim, const char *with);
00079 extern char *addslashes(char *str);
00080 extern char *stripslashes(char *str);
00081 extern char *str_base64_encode(char *str);
00082 extern char *str_base64_decode(char *str);
00083 extern char *recvline(FILE *fp);
00084
00085 #if HAVE_MD5
00086 extern char *md5(const char *str);
00087 #endif
00088
00089
00090 extern void List_add(formvars *item, formvars **start, formvars **last);
00091 extern void List_free(formvars **start);
00092 extern char *List_item(const char *name, formvars *start);
00093 extern int List_delete(char *name, formvars **start, formvars **last);
00094
00095 #ifdef __cplusplus
00096 }
00097 #endif
00098
00099 #endif // _CGI_H