📄 cgi.h
字号:
#ifndef __CGI_H_#define __CGI_H_#include <stdlib.h>#include <string.h>#include <stdio.h>// C++ includes #include <string>#include <map>#include <vector>const int HEAD=0;const int POST=1;const int GET=2;const int INTERACTIVE=3;inline void NEXT_CHAR(char *buffer,int buffer_len,char c) { memmove(buffer,buffer+1,buffer_len-1); buffer[buffer_len-1]=c; }class control {public: map<string,string> attributes; bool is_in_file; FILE *content; string value;};class CGI {private:// map <string,string> query_map; map <string,string> cookie_map;// map <string,string> fname_map; vector<string> query_keys; vector<string> cookie_keys; map<string,vector<control *> > extended_query_map; int request_method; bool is_multipart; string query_string; string query_string_decoded; string cookie_string; string cookie_string_decoded;public: CGI(); ~CGI(); string getQVal(const string &key,int id=0); // Query value by key FILE *getUpload(const string &key,int id=0); // Uploaded file string getUploadedFileName(const string &key,int id=0); // Uploaded filename control *getControl(const string &key,int id=0); int getQValArraySize(const string &key); string &getCVal(const string &key); // Cookie val by key void setCookie(const string &key,const string &val, const string &expires,const string &path, const string &domain,bool isSecure); string &getQuery(); string &getCookie(); vector<string> &getQKeys(); // Query keys vector<string> &getCKeys(); // Cookie keys bool isQKey(const string &key); // is Query key ? bool isCKey(const string &key); // is Cookie key ?private: bool isMultyPart(); void buildMultyPart(); void setAttr(string & buf,control *); void getPostQuery(); void getGetQuery(); void getHeadQuery(); void getInteractiveQuery(); void getStdCookie(); void getInteractiveCookie(); void decodeQuery(); void decodeCookie(); void parseQuery(); void parseCookie();};#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -