Пример #1
0
/**
 * 为当前访问者启用 session
 *
 * @param const char* datadir 用于保存 session 数据文件的目录
 *
 * @return int 成功返回0,失败返回非0值
 */
int session_start(const char* datadir) {
	char cookie_session_id[34];
	int result;

	if (g_session_data != NULL) {
		fprintf(cgiOut, "Warning: session_start() calls again.<br />\n");
		return -1;
	}

	// 初始化 session_data
	sess_init(datadir);

	// 根据 cookie 状态确定是创建新 session 还是载入现有的 session
	result = cgiCookieString("CWEB_SESSION_ID", cookie_session_id, 33);
#ifdef DEBUG
	fprintf(cgiOut, "cgiCookieString() result: %u\n", result);
	fprintf(cgiOut, "cookie_session_id: %s\n", cookie_session_id);
#endif

	if (result != cgiFormSuccess) {
		// 没有找到有效的 cookie session_id,创建一个新 session
		result = sess_create();
	} else {
		result = sess_load(cookie_session_id, datadir);
	}
	sess_gc(); //处理过期session
	return result;
}
Пример #2
0
int check_password()
{
	char username[30];
	char password[30];

	memset(username,0,sizeof(username));
	memset(password,0,sizeof(password));
	if(cgiFormNotFound == cgiFormStringNoNewlines("j_password", password, 30))
	{
		//fprintf(cgiOut, "<p>&nbsp; cgiFormNotFound</p>\n");
		cgiCookieString("admin", password, sizeof(password));
		memcpy(username,"admin",5);
		//fprintf(cgiOut, "<p>&nbsp; ==11%s==%s----%s</p>\n",cgiRemoteAddr,username,password);
	}
	else
	{
		cgiFormStringNoNewlines("j_username", username, 30);	
		cgiFormStringNoNewlines("j_password", password, 30);
	}

	//fprintf(cgiOut, "<p>&nbsp; %s----%s</p>\n",username,password);
	if(!memcmp(username,"admin",5) && !memcmp(password,"asdf1~",6))
	{
		return 1;
	}
	else
	{
		fprintf(cgiOut, "<p>&nbsp;用户未登录或密码错误,请返回重新输入!</p>\n");
		fprintf(cgiOut, "&nbsp;&nbsp;&nbsp;&nbsp;<input type=\"button\" name=\"rest\" onclick=\"javascript:window.location.href='/index.html'\" value=\"返回\" />\n");
		
		fprintf(cgiOut, "</center>\n</body>\n");
		fprintf(cgiOut, "</html>\n");
		return 0;
	}
}
Пример #3
0
void Cookies()
{
    char **array, **arrayStep;
    char cname[1024], cvalue[1024];
    fprintf(cgiOut, "Cookies Submitted On This Call, With Values (Many Browsers NEVER Submit Cookies):<p>\n");
    if (cgiCookies(&array) != cgiFormSuccess) {
        return;
    }
    arrayStep = array;
    fprintf(cgiOut, "<table border=1>\n");
    fprintf(cgiOut, "<tr><th>Cookie<th>Value</tr>\n");
    while (*arrayStep) {
        char value[1024];
        fprintf(cgiOut, "<tr>");
        fprintf(cgiOut, "<td>");
        cgiHtmlEscape(*arrayStep);
        fprintf(cgiOut, "<td>");
        cgiCookieString(*arrayStep, value, sizeof(value));
        cgiHtmlEscape(value);
        fprintf(cgiOut, "\n");
        arrayStep++;
    }
    fprintf(cgiOut, "</table>\n");
    cgiFormString("cname", cname, sizeof(cname));
    cgiFormString("cvalue", cvalue, sizeof(cvalue));
    if (strlen(cname)) {
        fprintf(cgiOut, "New Cookie Set On This Call:<p>\n");
        fprintf(cgiOut, "Name: ");
        cgiHtmlEscape(cname);
        fprintf(cgiOut, "Value: ");
        cgiHtmlEscape(cvalue);
        fprintf(cgiOut, "<p>\n");
        fprintf(cgiOut, "If your browser accepts cookies (many do not), this new cookie should appear in the above list the next time the form is submitted.<p>\n");
    }
    cgiStringArrayFree(array);
}