session.h
来自「这是我自己写的用于嵌入式设备的CGI程序」· C头文件 代码 · 共 85 行
H
85 行
#ifndef _SESSION_H#define _SESSION_H 1//#define SESS_DIRECTORY "/tmp/cgisess/"#define SESS_DIRECTORY "/var/cgisess/"#define SESS_FILENAME_PREFIX "sess_"#define SESS_LIVE_TIME 2400 //秒#define LANGUAGEFILE_EN "/web/html/language/en"#define LANGUAGEFILE_GB "/web/html/language/gb"#define LANGUAGEFILE_BIG5 "/web/html/language/big5"#define EN 1#define GB 2#define BIG5 3#define FR 4#define DE 5#define IT 6#define ES 7#define PT 8#define RU 9#define JP 10typedef struct _SESSION_DATA{ char session_filename[29]; //不包含完整路徑,文件名以sess_開頭,后接session_id字符串 char session_id[24]; //隨機生成 char auth_str[48]; //驗證字符串,隨機生成,並作爲cookie發送至客戶端; dword client_ip; //客戶端IP地址,本机字节序保存 time_t update_time; //更新時間(最後活動時間) char username[24]; char password[24]; dword user_id; dword group_id; byte authority; byte language_selected; //选择的语言 byte reserved[29];}SESSION_DATA;typedef enum{ SessionCheckSuccess, SessionTimeOut, //超時 SessionNotExist, //不存在 CookieNotConform, //客戶端cookie不一緻// IpNotConform //客戶端IP地址不一緻}sessionCheckResult;typedef enum{ LoginOK, LoginFailure}LoginCheckResult;extern SESSION_DATA* current_session_data;extern const char* sess_filename_prefix;/*---------------------------------------------------------------------------* * 以下函数由使用者调用 *---------------------------------------------------------------------------*/extern int sessionCheckOnHead ( char * current_session_id );extern sessionCheckResult sessionCheck ( char *current_session_id, SESSION_DATA * current_session_data );extern int sessionInit ( char *current_session_id, SESSION_DATA * current_session_data );extern int sessionUpdate ( SESSION_DATA * current_session_data );extern int sessionDestroy ( char *current_session_id);extern int oldSessionClean ( void );extern int get_current_user ( char * current_session_id, char * username );extern int get_user_authority ( char * current_session_id, int * authority );extern int get_language_selected ( char * current_session_id, int* language_selected );extern void read_prev_selectd (int* language_selected);extern char* language_tag (int language_selected, char* cgi_section, char* tag_name);/*---------------------------------------------------------------------------* * 以下函数为内部使用 *---------------------------------------------------------------------------*/void rand_str(int n, char * str);void init_sess_filename ( char * sess_filename, char * session_id );int sess_load(const char* session_id, const char* datadir, SESSION_DATA * current_session_data);#endif
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?