📄 recordsession.c
字号:
/**
* recordsession.c CGI program for recording sessions
* by zhiyong, louisville, Dec..10
* $Id: Exp $ **/#include <stdio.h>#include <stdlib.h>#include <string.h>
//#include <gdbm.h>
//char session_gdbm[256] = "/home/zhiyong/software/apache2/cgi-bin/session.gdbm";
int main()
{ int iRet;
char* Cookie_ID = NULL;
char sessionID[256];
char* Request_URI = NULL;
char sessionURL[256];
char* ptr = NULL;
FILE *fp = NULL;
//GDBM_FILE db = NULL;
//datum name;
//datum value;
char sessions[2048];
fprintf(stdout, "Content-type: text/html\n\n");
//the following part are replaced by modifying apahce mod_usertrack
//no longer in maintainence.
/*Cookie_ID = getenv("HTTP_COOKIE");
if(Cookie_ID != NULL)
{
ptr = strchr(Cookie_ID, '=');
if(ptr != NULL)
{
if(strlen(ptr) >=256)
{
fprintf(stderr, "session ID length too long\n");
}
else
{
strcpy(sessionID, ptr+1);
}
}
}
Request_URI = getenv("REQUEST_URI");
if(Request_URI != NULL)
{
ptr = strchr(Request_URI, '=');
if(ptr != NULL)
{
if(strlen(ptr) >=256)
{
fprintf(stderr, "session url length too long\n");
}
else
{
strcpy(sessionURL, ptr+1);
sessionURL[strlen(ptr+1)] = '\0';
}
}
}*/
/*fp = fopen(session_gdbm, "rb");
if(fp == NULL)
{
db = gdbm_open(session_gdbm, 2048, GDBM_WRITER|GDBM_WRCREAT|GDBM_SYNC|GDBM_NOLOCK, 0644 ,0);
}
else
{
db = gdbm_open(session_gdbm, 2048, GDBM_WRITER, 0644 ,0);
}
fclose(fp);
if (db ==NULL)
{
fprintf(stderr, "create %s error\n",session_gdbm);
return 0;
}
name.dptr = sessionID;
name.dsize = strlen(sessionID);
iRet = gdbm_exists(db, name);
if(iRet)
{
value = gdbm_fetch(db, name);
if(value.dptr != NULL)
{
strcpy(sessions, value.dptr);
sessions[value.dsize] = '\0';
strcat(sessions, ";");
strcat(sessions, sessionURL);
sessions[strlen(sessions)] = '\0';
}
else
{
fprintf(stderr, "error fetching gdbm lib file");
gdbm_close(db);
return -1;
}
}
else
{
strcpy(sessions, sessionURL);
sessions[strlen(sessions)] = '\0';
}
value.dptr = sessions;
value.dsize = strlen(sessions);
iRet = gdbm_store(db, name, value, GDBM_REPLACE);
gdbm_close(db);*/
/*fp = fopen("/home/zhiyong/software/apache2/cgi-bin/sessions.txt", "a+");
fprintf(fp,"Your Cookie ID:%s\n", Cookie_ID);
fprintf(fp,"Your Session ID:%s\n", sessionID);
fprintf(fp,"Your request:%s\n", Request_URI);
fprintf(fp,"Your session url :%s\n", sessionURL);
fclose(fp);*/
//printf("<H3>Your visit history:</H3>");
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -