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 + -
显示快捷键?