Esempio n. 1
0
string UTFEncoder::url_UTFEncoder(string input)
{
	if (input.empty())
		return "";
	CString c_input = input.c_str();
	ConvertGBKToUtf8(c_input);

	std::ostrstream utf_code;
	std::string outputstring;

	for (int i=0;i<c_input.GetLength();i++) 
	{
		int temp=c_input[i];
		temp=temp&0xff;
		utf_code<<'%';
		utf_code<<hex<<temp;
	}
	outputstring=utf_code.str();
	outputstring=outputstring.substr(0,c_input.GetLength()*3);
	return outputstring;
}
Esempio n. 2
0
BOOL CPlayDataMgr::SaveDB(UINT uiID)
{
    CMapDT_PLAYER_DATA_Itr itr;
    itr = mapDT_PLAYER_DATA.find(uiID);
    if (itr == mapDT_PLAYER_DATA.end())
    {
        return FALSE;
    }

    DT_PLAYER_DATA *pstDT_PLAYER_DATA = itr->second;
    SGDP::ISDDBSession*	pDBSession = CDBMgr::Instance()->GetDBSession();
    if(NULL == pDBSession)
    {
        return FALSE;
    }

    char		v_szData[sizeof(DT_PLAYER_BASE_DATA) + 1] = {0};
    memcpy_s(v_szData, sizeof(DT_PLAYER_BASE_DATA) + 1, &pstDT_PLAYER_DATA->stBaseData, sizeof(DT_PLAYER_BASE_DATA));
    DT_PLAYER_BASE_DATA *v_pDT_PLAYER_BASE_DATA = (DT_PLAYER_BASE_DATA*)v_szData;


    char		v_szTemp[1024] = {0};
    memcpy_s(v_szTemp, 1024, v_pDT_PLAYER_BASE_DATA->aszDispName, USERNAME_LEN);
    CString v_strTemp = v_szTemp;
    ConvertGBKToUtf8(v_strTemp);
    memset(v_pDT_PLAYER_BASE_DATA->aszDispName, 0x00, USERNAME_LEN);
    memcpy_s(v_pDT_PLAYER_BASE_DATA->aszDispName, USERNAME_LEN, v_strTemp.GetBuffer(0), v_strTemp.GetLength() + 1);

    CHAR szBaseData[ sizeof(DT_PLAYER_BASE_DATA) * 2 + 1] = {0};
    UINT32 dwRetCode = pDBSession->EscapeString((CHAR *) & (pstDT_PLAYER_DATA->stBaseData),
                       sizeof(DT_PLAYER_BASE_DATA),
                       szBaseData,
                       sizeof(szBaseData));
    if(dwRetCode <= 0)
    {
        //SYS_CRITICAL(_SDT("[%s: %d]: EscapeString failed!"), MSG_MARK);
        return FALSE;
    }

    CHAR szBagData[ sizeof(DT_BAG_DATA) * 2 + 1] = {0};
    dwRetCode = pDBSession->EscapeString((CHAR *) & (pstDT_PLAYER_DATA->stBagData),
                                         sizeof(DT_BAG_DATA),
                                         szBagData,
                                         sizeof(szBagData));
    if(dwRetCode <= 0)
    {
        //SYS_CRITICAL(_SDT("[%s: %d]: EscapeString failed!"), MSG_MARK);
        return FALSE;
    }

    CHAR szBuildData[ sizeof(DT_BUILD_DATA_LIST) * 2 + 1] = {0};
    dwRetCode = pDBSession->EscapeString((CHAR *) & (pstDT_PLAYER_DATA->stBuildData),
                                         sizeof(DT_BUILD_DATA_LIST),
                                         szBuildData,
                                         sizeof(szBuildData));
    if(dwRetCode <= 0)
    {
        //SYS_CRITICAL(_SDT("[%s: %d]: EscapeString failed!"), MSG_MARK);
        return FALSE;
    }

    CHAR szCurState[ sizeof(DT_STATE_DATA) * 2 + 1] = {0};
    dwRetCode = pDBSession->EscapeString((CHAR *) & (pstDT_PLAYER_DATA->stCurState),
                                         sizeof(DT_STATE_DATA),
                                         szCurState,
                                         sizeof(szCurState));
    if(dwRetCode <= 0)
    {
        //SYS_CRITICAL(_SDT("[%s: %d]: EscapeString failed!"), MSG_MARK);
        return FALSE;
    }

    CHAR szTaskData[ sizeof(DT_TASK_DATA_LIST) * 2 + 1] = {0};
    dwRetCode = pDBSession->EscapeString((CHAR *) & (pstDT_PLAYER_DATA->stTaskData),
                                         sizeof(DT_TASK_DATA_LIST),
                                         szTaskData,
                                         sizeof(szTaskData));
    if(dwRetCode <= 0)
    {
        //SYS_CRITICAL(_SDT("[%s: %d]: EscapeString failed!"), MSG_MARK);
        return FALSE;
    }

    CHAR szBagEquipData[ sizeof(DT_BAG_EQUIP_DATA_LST) * 2 + 1] = {0};
    dwRetCode = pDBSession->EscapeString((CHAR *) & (pstDT_PLAYER_DATA->stBagEquipData),
                                         sizeof(DT_BAG_EQUIP_DATA_LST),
                                         szBagEquipData,
                                         sizeof(szBagEquipData));
    if(dwRetCode <= 0)
    {
        //SYS_CRITICAL(_SDT("[%s: %d]: EscapeString failed!"), MSG_MARK);
        return FALSE;
    }

    CHAR szBagGoodsData[ sizeof(DT_BAG_GOODS_DATA_LST) * 2 + 1] = {0};
    dwRetCode = pDBSession->EscapeString((CHAR *) & (pstDT_PLAYER_DATA->stBagGoodsData),
                                         sizeof(DT_BAG_GOODS_DATA_LST),
                                         szBagGoodsData,
                                         sizeof(szBagGoodsData));
    if(dwRetCode <= 0)
    {
        //SYS_CRITICAL(_SDT("[%s: %d]: EscapeString failed!"), MSG_MARK);
        return FALSE;
    }

    CHAR szHeroData[ sizeof(DT_HERO_DATA_LIST) * 2 + 1] = {0};
    dwRetCode = pDBSession->EscapeString((CHAR *) & (pstDT_PLAYER_DATA->stHeroData),
                                         sizeof(DT_HERO_DATA_LIST),
                                         szHeroData,
                                         sizeof(szHeroData));
    if(dwRetCode <= 0)
    {
        //SYS_CRITICAL(_SDT("[%s: %d]: EscapeString failed!"), MSG_MARK);
        return FALSE;
    }

    CHAR szCommonBattleRcd[ sizeof(DT_INSTANCE_BATTLE_DATA) * 2 + 1] = {0};
    dwRetCode = pDBSession->EscapeString((CHAR *) & (pstDT_PLAYER_DATA->stCommonBattleRcd),
                                         sizeof(DT_INSTANCE_BATTLE_DATA),
                                         szCommonBattleRcd,
                                         sizeof(szCommonBattleRcd));
    if(dwRetCode <= 0)
    {
        //SYS_CRITICAL(_SDT("[%s: %d]: EscapeString failed!"), MSG_MARK);
        return FALSE;
    }

    CHAR szEliteBattleRcd[ sizeof(DT_INSTANCE_BATTLE_DATA) * 2 + 1] = {0};
    dwRetCode = pDBSession->EscapeString((CHAR *) & (pstDT_PLAYER_DATA->stEliteBattleRcd),
                                         sizeof(DT_INSTANCE_BATTLE_DATA),
                                         szEliteBattleRcd,
                                         sizeof(szEliteBattleRcd));
    if(dwRetCode <= 0)
    {
        //SYS_CRITICAL(_SDT("[%s: %d]: EscapeString failed!"), MSG_MARK);
        return FALSE;
    }

    CHAR szCommonInstanceData[ sizeof(DT_INSTANCE_DATA_LIST) * 2 + 1] = {0};
    dwRetCode = pDBSession->EscapeString((CHAR *) & (pstDT_PLAYER_DATA->stCommonInstanceData),
                                         sizeof(DT_INSTANCE_DATA_LIST),
                                         szCommonInstanceData,
                                         sizeof(szCommonInstanceData));
    if(dwRetCode <= 0)
    {
        //SYS_CRITICAL(_SDT("[%s: %d]: EscapeString failed!"), MSG_MARK);
        return FALSE;
    }

    CHAR szEliteInstanceData[ sizeof(DT_INSTANCE_DATA_LIST) * 2 + 1] = {0};
    dwRetCode = pDBSession->EscapeString((CHAR *) & (pstDT_PLAYER_DATA->stEliteInstanceData),
                                         sizeof(DT_INSTANCE_DATA_LIST),
                                         szEliteInstanceData,
                                         sizeof(szEliteInstanceData));
    if(dwRetCode <= 0)
    {
        //SYS_CRITICAL(_SDT("[%s: %d]: EscapeString failed!"), MSG_MARK);
        return FALSE;
    }

    CHAR szLocaleData[ sizeof(DT_LOCALE_DATA) * 2 + 1] = {0};
    dwRetCode = pDBSession->EscapeString((CHAR *) & (pstDT_PLAYER_DATA->stLocaleData),
                                         sizeof(DT_LOCALE_DATA),
                                         szLocaleData,
                                         sizeof(szLocaleData));
    if(dwRetCode <= 0)
    {
        //SYS_CRITICAL(_SDT("[%s: %d]: EscapeString failed!"), MSG_MARK);
        return FALSE;
    }

    CHAR szLoginEncRecdData[ sizeof(DT_LOGIN_ENCOURAGE_RECORD_DATA) * 2 + 1] = {0};
    dwRetCode = pDBSession->EscapeString((CHAR *) & (pstDT_PLAYER_DATA->stLoginEncRecdData),
                                         sizeof(DT_LOGIN_ENCOURAGE_RECORD_DATA),
                                         szLoginEncRecdData,
                                         sizeof(szLoginEncRecdData));
    if(dwRetCode <= 0)
    {
        //SYS_CRITICAL(_SDT("[%s: %d]: EscapeString failed!"), MSG_MARK);
        return FALSE;
    }

    CHAR szMoneyTreeData[ sizeof(DT_MONEY_TREE_DATA) * 2 + 1] = {0};
    dwRetCode = pDBSession->EscapeString((CHAR *) & (pstDT_PLAYER_DATA->stMoneyTreeData),
                                         sizeof(DT_MONEY_TREE_DATA),
                                         szMoneyTreeData,
                                         sizeof(szMoneyTreeData));
    if(dwRetCode <= 0)
    {
        //SYS_CRITICAL(_SDT("[%s: %d]: EscapeString failed!"), MSG_MARK);
        return FALSE;
    }

    CHAR szOnhookRcdData[ sizeof(DT_ONHOOK_RCD_DATA) * 2 + 1] = {0};
    dwRetCode = pDBSession->EscapeString((CHAR *) & (pstDT_PLAYER_DATA->stOnhookRcdData),
                                         sizeof(DT_ONHOOK_RCD_DATA),
                                         szOnhookRcdData,
                                         sizeof(szOnhookRcdData));
    if(dwRetCode <= 0)
    {
        //SYS_CRITICAL(_SDT("[%s: %d]: EscapeString failed!"), MSG_MARK);
        return FALSE;
    }

    CHAR szOnlineEncRecdData[ sizeof(DT_ONLINE_ENCOURAGE_RECORD_DATA) * 2 + 1] = {0};
    dwRetCode = pDBSession->EscapeString((CHAR *) & (pstDT_PLAYER_DATA->stOnlineEncRecdData),
                                         sizeof(DT_ONLINE_ENCOURAGE_RECORD_DATA),
                                         szOnlineEncRecdData,
                                         sizeof(szOnlineEncRecdData));
    if(dwRetCode <= 0)
    {
        //SYS_CRITICAL(_SDT("[%s: %d]: EscapeString failed!"), MSG_MARK);
        return FALSE;
    }

    CHAR szPhystrengthData[ sizeof(DT_PHYSTRENGTH_DATA) * 2 + 1] = {0};
    dwRetCode = pDBSession->EscapeString((CHAR *) & (pstDT_PLAYER_DATA->stPhystrengthData),
                                         sizeof(DT_PHYSTRENGTH_DATA),
                                         szPhystrengthData,
                                         sizeof(szPhystrengthData));
    if(dwRetCode <= 0)
    {
        //SYS_CRITICAL(_SDT("[%s: %d]: EscapeString failed!"), MSG_MARK);
        return FALSE;
    }

    CHAR szSkillData[ sizeof(DT_SKILL_DATA_LIST) * 2 + 1] = {0};
    dwRetCode = pDBSession->EscapeString((CHAR *) & (pstDT_PLAYER_DATA->stSkillData),
                                         sizeof(DT_SKILL_DATA_LIST),
                                         szSkillData,
                                         sizeof(szSkillData));
    if(dwRetCode <= 0)
    {
        //SYS_CRITICAL(_SDT("[%s: %d]: EscapeString failed!"), MSG_MARK);
        return FALSE;
    }

    CHAR szCropData[ sizeof(DT_CROP_DATA) * 2 + 1] = {0};
    dwRetCode = pDBSession->EscapeString((CHAR *) & (pstDT_PLAYER_DATA->stCropData),
                                         sizeof(DT_CROP_DATA),
                                         szCropData,
                                         sizeof(szCropData));
    if(dwRetCode <= 0)
    {
        //SYS_CRITICAL(_SDT("[%s: %d]: EscapeString failed!"), MSG_MARK);
        return FALSE;
    }

    CHAR szFewParamData[ sizeof(DT_FEW_PARAM_DATA) * 2 + 1] = {0};
    dwRetCode = pDBSession->EscapeString((CHAR *) & (pstDT_PLAYER_DATA->stFewParamData),
                                         sizeof(DT_FEW_PARAM_DATA),
                                         szFewParamData,
                                         sizeof(szFewParamData));
    if(dwRetCode <= 0)
    {
        //SYS_CRITICAL(_SDT("[%s: %d]: EscapeString failed!"), MSG_MARK);
        return FALSE;
    }

    CHAR szScienceTree[ sizeof(DT_SCIENCE_TREE_DATA) * 2 + 1] = {0};
    dwRetCode = pDBSession->EscapeString((CHAR *) & (pstDT_PLAYER_DATA->stScienceTree),
                                         sizeof(DT_SCIENCE_TREE_DATA),
                                         szScienceTree,
                                         sizeof(szScienceTree));
    if(dwRetCode <= 0)
    {
        //SYS_CRITICAL(_SDT("[%s: %d]: EscapeString failed!"), MSG_MARK);
        return FALSE;
    }


    CHAR szFormationInfo[ sizeof(DT_FORMATION_DATA) * 2 + 1] = {0};
    dwRetCode = pDBSession->EscapeString((CHAR *) & (pstDT_PLAYER_DATA->stFormationInfo),
                                         sizeof(DT_FORMATION_DATA),
                                         szFormationInfo,
                                         sizeof(szFormationInfo));
    if(dwRetCode <= 0)
    {
        //SYS_CRITICAL(_SDT("[%s: %d]: EscapeString failed!"), MSG_MARK);
        return FALSE;
    }

    static char		pszSql[655350] = {0};
    sprintf(pszSql, "update player set "\
            "BaseData='%s', Bag='%s', Build='%s', Curstate='%s', "\
            "Curtask='%s', Equip='%s', Goods='%s', Hero='%s', "\
            "CommonBattleRcd='%s', EliteBattleRcd='%s', CommonInstanceData='%s', EliteInstanceData='%s', "\
            "Locale='%s', LoginEncourageRecord='%s', MoneyTree='%s', OnhookRecord='%s', OnlineEncourageRecord='%s', "\
            "Phystrength='%s', Skill='%s', Crop='%s', FewParam='%s',"\
            "FormationInfo='%s', ScienceTree='%s', "\
            "UpdateTime=now(), Gold='%llu', LastOrderID='%s' where ID ='%u'; ",
            szBaseData, szBagData, szBuildData, szCurState,
            szTaskData, szBagEquipData, szBagGoodsData, szHeroData,
            szCommonBattleRcd, szEliteBattleRcd, szCommonInstanceData, szEliteInstanceData,
            szLocaleData, szLoginEncRecdData, szMoneyTreeData, szOnhookRcdData, szOnlineEncRecdData,
            szPhystrengthData, szSkillData, szCropData, szFewParamData,
            szFormationInfo, szScienceTree,
            pstDT_PLAYER_DATA->stBaseData.qwGold, pstDT_PLAYER_DATA->szLastOrderID, pstDT_PLAYER_DATA->stBaseData.dwID);

    INT32 nRet = 0;
    UINT32 dwErrorCode = 0;
    ISDDBRecordSet*pRecordSet = NULL;
    string strErrorDes;
    nRet = pDBSession->ExecuteSqlRs(pszSql, &pRecordSet, &dwErrorCode, &strErrorDes );
    if(NULL != pRecordSet)
    {
        //SYS_CRITICAL(_SDT("[%s: %d]: exec sql failed!Error:%s Sql:%s"), MSG_MARK, strErrorDes.c_str(), pszSql);
        pRecordSet->Release();
        pRecordSet = NULL;
    }

    if(nRet < 0)
    {
        //SYS_CRITICAL(_SDT("[%s: %d]: exec sql failed!Error:%s Sql:%s"), MSG_MARK, strErrorDes.c_str(), pszSql);
        return FALSE;
    }

    return TRUE;
}
Esempio n. 3
0
//用户登录
bool C51JobWebPost::UserRegister()
{
	try
	{
		switch (g_iRegWebFlag)
		{
		case 0:
			m_strServerURL = "www.7ple.com";
			break;
		case 1:
			m_strServerURL = "www.7pmi.com";
			break;
		case 2:
		default:
			m_strServerURL = "www.7psw.com";
			break;
		}
		CString strError = "";
		CString sendStr = "";
		ShowMessage("正在获取注册页面...");
		CString objectlink = "";
		switch (g_iRegWebFlag)
		{
		case 0:
			objectlink = "/reg.jhtml?siteID=11";
			break;
		case 1:
			objectlink = "/reg.jhtml?siteID=11";
			break;
		case 2:
		default:
			objectlink = "/reg.jhtml?siteID=18";
			break;
		}
		//TestProxy();
		CString strHeaders = m_strHeader;
		m_strServerURL = "www.ip138.com";
		objectlink = "/ip2city.asp";
		int iRet = RequestGetPageExExEx(m_strServerURL,objectlink,strHeaders,
			strError,0,1,0,"122.205.95.14",80,"","");
		//int iRet = RequestGetPage(m_Session,m_pConnection,m_strServerURL,objectlink,strHeaders);
// 		int iRet = RequestGetPageExExEx(m_strServerURL,objectlink,strHeaders,
// 			strError,0,1,0,"125.41.181.59",8080,"","");
		if ( iRet != 0 )
		{
			TRACE("获取页面出错");
			ShowMessage("获取注册页面失败");
			m_nErrorTime ++;
			DeleteObjectExEx();
			return false;
		}
		m_strWorkBuf.MakeLower();
		//AfxMessageBox(m_strWorkBuf.Right(m_strWorkBuf.GetLength() - 200));
		//检查是否打开简历管理页
		int iPos = m_strWorkBuf.Find("找回密码用");
		if (iPos >= 0)
		{
			ShowMessage("成功获取注册页,正在获取验证码...");
		}
		else
		{
			return false;
		}
		CString postStr = "";
		CString strShow = "";		
		while(!g_ExitFlag)
		{
			try
			{
				RegisterPack rgPack;
				int iRet = GetRegisterPack(rgPack);
				if (iRet == -1)
				{
					Sleep(700);
					continue;
				}
				else if (iRet == -2)
				{
					Sleep(2000);
					continue;
				}
				/************************************************************************/
				/* 更换验证字符串                                                       */
				/************************************************************************/
				iRet = GetFirstUsefulKey();
				if (iRet != 0)
				{	
					Sleep(1000);
					continue;
				}
				m_strMac.MakeUpper();
				ShowMessage("模拟验证信息:"+m_strMac + "," + m_strTrans +","+m_strVerify);
				/************************************************************************/
				/* 此处先获取注册页面的信息,以备填充                                    */
				/************************************************************************/
				//HWND hwnd = ::FindWindow("IEFrame","棋牌乐 - 注册帐号 - Microsoft Internet Explorer");
				rgPack.strIp = g_strCurrIP;
				m_iCheckFlag = 0;
				g_strCheckCode = "";
				if (m_iCheckFlag == 0)
				{
					//删除旧的验证码
					if (_access(g_strDirect+g_strFileName,0) == 0)
					{
						CFile::Remove(g_strDirect+g_strFileName);
					}
					ShowMessage("正在获取验证码...");
					m_iCheckFlag = 0;
					objectlink = "/NewRegValidateCode";
					//strHeaders = m_strHeader + "\r\nReferer:http://www.dajiale365.com/reg.shtml";
					iRet = RequestGetPageExExEx(m_strServerURL,objectlink,strHeaders,strError,1);
					if (iRet != 0)
					{
						ShowMessage("获取验证码失败");
						m_nErrorTime ++;
						DeleteObjectExEx();
						return false;
					}
					else
					{
						ShowMessage("获取验证码成功");	
						strShow.Format("正在注册:%s %s",rgPack.strAcc,rgPack.strPwd);
						ShowMessage(strShow);
					}
				}		
				while(!g_ExitFlag)
				{
					if ( g_strCheckCode != "")
					{
						break;
					}
					Sleep(100);
				}
				if (g_ExitFlag)
				{
					DeleteObjectExEx();
					return false;
				}
				CString strFailReason = "";
				CString strCheckCode = g_strCheckCode;
				if (strCheckCode == "r")
				{
					continue;
				}
				objectlink = "/regAction.jhtml";

				switch (g_iRegWebFlag)
				{
				case 0:
					strHeaders = m_strHeader + "\r\nReferer:http://www.7ple.com/reg.jhtml?siteID=11";
					break;
				case 1:
					strHeaders = m_strHeader + "\r\nReferer:http://www.7pmi.com/reg.jhtml?siteID=11";
					break;
				case 2:
				default:
					strHeaders = m_strHeader + "\r\nReferer:http://www.7psw.com/reg.jhtml?siteID=18";
					break;
				}	
				
				//strHeaders += "\r\nx-requested-with: XMLHttpRequest";
				//strHeaders += "\r\nContent-Type: application/x-www-form-urlencoded";
				CString strTime = CTime::GetCurrentTime().Format("%m%d%H%M%S");
				//strCheckCode = NativeToAscii(strCheckCode);
				//strCheckCode = "确学装衣";
				//ConvertGBKToUtf8(strCheckCode);
				rgPack.strMail = "";
				switch (g_iRegWebFlag)
				{
				case 0:
					ConvertGBKToUtf8(strCheckCode);
					strCheckCode = URLEncode(strCheckCode);
					postStr.Format("username=%s&password=%s&repassword=%s&sex=1&myhead=1&email=%s&siteID=11&7pmiReferrerUrl=&7pmiLocalUrl=&selfinfo=&machineserial=%s&transactionid=%s&verify=%s&ptvodaccounts=&introducer=%s&checkcode=%s&agree=on",rgPack.strAcc,rgPack.strPwd,rgPack.strPwd,rgPack.strMail,m_strMac,m_strTrans,m_strVerify,rgPack.strNickName,strCheckCode);
					break;
				case 1:
					postStr.Format("username=%s&password=%s&repassword=%s&sex=1&myhead=1&email=%s&siteID=11&7pmiReferrerUrl=&7pmiLocalUrl=&selfinfo=&machineserial=%s&transactionid=%s&verify=%s&ptvodaccounts=&introducer=%s&checkcode=%s&agree=on",rgPack.strAcc,rgPack.strPwd,rgPack.strPwd,rgPack.strMail,m_strMac,m_strTrans,m_strVerify,rgPack.strNickName,strCheckCode);
					break;
				case 2:
				default:
					ConvertGBKToUtf8(strCheckCode);
					strCheckCode = URLEncode(strCheckCode);
					postStr.Format("username=%s&password=%s&repassword=%s&sex=1&myhead=1&email=%s&siteID=18&7pmiReferrerUrl=&7pmiLocalUrl=&selfinfo=&machineserial=%s&transactionid=%s&verify=%s&ptvodaccounts=&introducer=%s&checkcode=%s&agree=on",rgPack.strAcc,rgPack.strPwd,rgPack.strPwd,rgPack.strMail,m_strMac,m_strTrans,m_strVerify,rgPack.strNickName,strCheckCode);
					break;
				}
				iRet = RequestPostPageExExEx(m_strServerURL,objectlink,strHeaders,postStr,strError,0);//
				if ( iRet != 0 )
				{
					TRACE("POST出错");
					m_nErrorTime ++;
					DeleteObjectExEx();
					return false;
				}
				m_strWorkBuf.MakeLower();				
				iPos = m_strWorkBuf.Find("注册成功");
				if ( iPos >= 0)
				{
                    ShowMessage("注册成功");
					rgPack.iStatus = 1;
					rgPack.strMemo = "成功";
					strShow.Format("%s,%s,",rgPack.strAcc,rgPack.strPwd);
					WriteLog(strShow,0);
					//保存注册成功的账号进数据库
// 					iRet = WriteToBase(rgPack,g_iRegWebFlag);
// 					if (iRet != 0)
// 					{
// 						WriteLog(strShow,3);
// 					}
					m_iIpSuccNum++;
					if (m_iIpSuccNum >= g_iIpRegNum)
					{
						if (g_iAotuChangeIp)
						{
							ShowMessage("单一IP注册数已达上限,正在切换IP...");
						}
						ShowMessage("单一M验证数据注册数已达上限,正在切换验证数据...");
						DisableKey(m_iID);
						m_iNeedChageIP = 1;
						m_iIpSuccNum = 0;
						//m_iIsNeedChangeMac = 1;
						//continue;
					}
				}
				else
				{//注册失败						
					CString strBefore = "<div align=\"center\"><font color='red'>";
					CString strAfter = "</font></div>";
					strFailReason = GetKeyString(m_strWorkBuf,strBefore,strAfter);
					ShowMessage("注册失败:	"+strFailReason);
					rgPack.iStatus = 2;
					rgPack.strMemo = strFailReason;
					//此处找到单机已经达到上限字符串,获取下一组特征码
					if (strFailReason.Find("您的注册速度太快") != -1 || strFailReason.Find("日注册量已达到当日限额") != -1)
					{
						DisableKey(m_iID);
						m_iNeedChageIP = 1;
						m_iIpSuccNum = 0;
					}					
				}
				AddToShowList(rgPack);
				if (g_iDeleteFlag == 1)
				{
					if (strFailReason.Find("验证码输入错误")<0)
					{
						DeleteRegisterPack(rgPack);												
					}
					else
					{
						m_iCodeErrorNum ++;
						if (m_iCodeErrorNum >= g_iCodeErrorNum)
						{
							ShowMessage("验证码错误次数到达上限,跳过此账号的注册");
							DeleteRegisterPack(rgPack);
							m_iCodeErrorNum = 0;
						}
					}
				}
				else
				{
					DeleteRegisterPack(rgPack);
				}
#ifdef DEBUG
				m_iNeedChageIP = 1;
#endif
				if (m_iNeedChageIP == 1)		//换IP
				{
					DeleteObjectExEx();
					return false;
				}
// 				if (m_iIsNeedChangeMac == 1)		//换MAC地址
// 				{
// 					DeleteObjectExEx();
// 					return false;
// 				}
			}
			catch (...)
			{
				DeleteObjectExEx();
				return false;
			}			
		}
		return false;  
	}
	catch (...)
	{
	}
	DeleteObjectExEx();
	return false;            
}
Esempio n. 4
0
//用户登录
bool C51JobWebPost::UserRegister()
{
	try
	{
		switch (g_iRegWebFlag)
		{
		case 0:
			m_strServerURL = "www.7ple.com";
			break;
		case 1:
			m_strServerURL = "www.7pmi.com";
			break;
		case 2:
		default:
			m_strServerURL = "www.7psw.com";
			break;
		}
		CString strError = "";
		CString sendStr = "";
		ShowMessage("正在获取注册页面...");
		CString objectlink = "";
		switch (g_iRegWebFlag)
		{
		case 0:
			objectlink = "/reg.jhtml?siteID=11";
			break;
		case 1:
			objectlink = "/reg.jhtml?siteID=11";
			break;
		case 2:
		default:
			objectlink = "/reg.jhtml?siteID=18";
			break;
		}
		CString strHeaders = m_strHeader;
		//int iRet = RequestGetPage(m_Session,m_pConnection,m_strServerURL,objectlink,strHeaders);
		int iRet = RequestGetPageExExEx(m_strServerURL,objectlink,strHeaders,
			strError);//"148.233.239.24",3128,"","",0);
		if ( iRet != 0 )
		{
			TRACE("获取页面出错");
			ShowMessage("获取注册页面失败");
			m_nErrorTime ++;
			DeleteObjectExEx();
			return false;
		}
		m_strWorkBuf.MakeLower();
		//AfxMessageBox(m_strWorkBuf.Right(m_strWorkBuf.GetLength() - 200));
		//检查是否打开简历管理页
		int iPos = m_strWorkBuf.Find("找回密码用");
		if (iPos >= 0)
		{
			ShowMessage("成功获取注册页,正在获取验证码...");
		}
		else
		{
			return false;
		}
		CString postStr = "";
		CString strShow = "";		
		while(!g_ExitFlag)
		{
			try
			{
				RegisterPack rgPack;
				int iRet = GetRegisterPack(rgPack);
				if (iRet == -1)
				{
					Sleep(700);
					continue;
				}
				else if (iRet == -2)
				{
					Sleep(2000);
					continue;
				}
				/************************************************************************/
				/* 此处先获取注册页面的信息,以备填充                                    */
				/************************************************************************/
				//HWND hwnd = ::FindWindow("IEFrame","棋牌乐 - 注册帐号 - Microsoft Internet Explorer");
				m_hwnd = ::FindWindow("#32770","帐号注册");
				char str[128] = {0};
				HWND hwnd = NULL;
				CWindowFind find;
				//hwnd = find.MyFindWindow("Internet Explorer_Server","",hwnd);
				hwnd = find.GetChildWindow(m_hwnd,1);
				hwnd = find.GetChildWindow(hwnd,1);
				hwnd = find.GetChildWindow(hwnd,1);
				hwnd = find.GetChildWindow(hwnd,1);
				GetClassName(hwnd,str,sizeof(str));//获取类名 
				if(strcmp(str,"Internet Explorer_Server")==0)
				{
					IHTMLDocument2 *pDoc = GetDocInterface(hwnd);
					GetHtmlCtrl(pDoc);
				}
				rgPack.strIp = g_strCurrIP;
				m_iCheckFlag = 0;
				g_strCheckCode = "";
				if (m_iCheckFlag == 0)
				{
					//删除旧的验证码
					if (_access(g_strDirect+g_strFileName,0) == 0)
					{
						CFile::Remove(g_strDirect+g_strFileName);
					}
					ShowMessage("正在获取验证码...");
					m_iCheckFlag = 0;
					objectlink = "/RegRandomCodeCtrl";
					//strHeaders = m_strHeader + "\r\nReferer:http://www.dajiale365.com/reg.shtml";
					iRet = RequestGetPageExExEx(m_strServerURL,objectlink,strHeaders,strError,1);
					if (iRet != 0)
					{
						ShowMessage("获取验证码失败");
						m_nErrorTime ++;
						DeleteObjectExEx();
						return false;
					}
					else
					{
						ShowMessage("获取验证码成功");	
						strShow.Format("正在注册:%s %s",rgPack.strAcc,rgPack.strPwd);
						ShowMessage(strShow);
					}
				}		
				while(!g_ExitFlag)
				{
					if ( g_strCheckCode != "")
					{
						break;
					}
					Sleep(100);
				}
				if (g_ExitFlag)
				{
					DeleteObjectExEx();
					return false;
				}
				CString strFailReason = "";
				CString strCheckCode = g_strCheckCode;
				if (strCheckCode == "r")
				{
					continue;
				}
				objectlink = "/regAction.jhtml";

				switch (g_iRegWebFlag)
				{
				case 0:
					strHeaders = m_strHeader + "\r\nReferer:http://www.7ple.com/reg.jhtml?siteID=11";
					break;
				case 1:
					strHeaders = m_strHeader + "\r\nReferer:http://www.7pmi.com/reg.jhtml?siteID=11";
					break;
				case 2:
				default:
					strHeaders = m_strHeader + "\r\nReferer:http://www.7psw.com/reg.jhtml?siteID=18";
					break;
				}	
				
				//strHeaders += "\r\nx-requested-with: XMLHttpRequest";
				//strHeaders += "\r\nContent-Type: application/x-www-form-urlencoded";
				CString strTime = CTime::GetCurrentTime().Format("%m%d%H%M%S");
				//strCheckCode = NativeToAscii(strCheckCode);
				//strCheckCode = "确学装衣";
				//ConvertGBKToUtf8(strCheckCode);
				m_strMac.MakeUpper();
				switch (g_iRegWebFlag)
				{
				case 0:
					ConvertGBKToUtf8(strCheckCode);
					strCheckCode = URLEncode(strCheckCode);
					postStr.Format("username=%s&password=%s&repassword=%s&sex=1&myhead=1&email=%s&siteID=11&7pmiReferrerUrl=&7pmiLocalUrl=&selfinfo=&machineserial=%s&transactionid=%s&verify=%s&ptvodaccounts=&introducer=%s&checkcode=%s&agree=on",rgPack.strAcc,rgPack.strPwd,rgPack.strPwd,rgPack.strMail,m_strMac,m_strTrans,m_strVerify,rgPack.strNickName,strCheckCode);
					break;
				case 1:
					postStr.Format("username=%s&password=%s&repassword=%s&sex=1&myhead=1&email=%s&siteID=11&7pmiReferrerUrl=&7pmiLocalUrl=&selfinfo=&machineserial=%s&transactionid=%s&verify=%s&ptvodaccounts=&introducer=%s&checkcode=%s&agree=on",rgPack.strAcc,rgPack.strPwd,rgPack.strPwd,rgPack.strMail,m_strMac,m_strTrans,m_strVerify,rgPack.strNickName,strCheckCode);
					break;
				case 2:
				default:
					ConvertGBKToUtf8(strCheckCode);
					strCheckCode = URLEncode(strCheckCode);
					postStr.Format("username=%s&password=%s&repassword=%s&sex=1&myhead=1&email=%s&siteID=18&7pmiReferrerUrl=&7pmiLocalUrl=&selfinfo=&machineserial=%s&transactionid=%s&verify=%s&ptvodaccounts=&introducer=%s&checkcode=%s&agree=on",rgPack.strAcc,rgPack.strPwd,rgPack.strPwd,rgPack.strMail,m_strMac,m_strTrans,m_strVerify,rgPack.strNickName,strCheckCode);
					break;
				}
				iRet = RequestPostPageExExEx(m_strServerURL,objectlink,strHeaders,postStr,strError,0);//
				if ( iRet != 0 )
				{
					TRACE("POST出错");
					m_nErrorTime ++;
					DeleteObjectExEx();
					return false;
				}
				m_strWorkBuf.MakeLower();				
				iPos = m_strWorkBuf.Find("注册成功");
				if ( iPos >= 0)
				{
                    ShowMessage("注册成功");
					rgPack.iStatus = 1;
					rgPack.strMemo = "成功";
					strShow.Format("%s,%s,",rgPack.strAcc,rgPack.strPwd);
					WriteLog(strShow,0);
					//保存注册成功的账号进数据库
					iRet = WriteToBase(rgPack,g_iRegWebFlag);
					if (iRet != 0)
					{
						WriteLog(strShow,3);
					}
					m_iIpSuccNum++;
					if (m_iIpSuccNum >= g_iIpRegNum)
					{
						if (g_iAotuChangeIp)
						{
							ShowMessage("单一IP注册数已达上限,正在切换IP...");
						}
						if (g_iIsChangeMac)
						{
							ShowMessage("单一MAC地址注册数已达上限,正在切换MAC地址...");
						}
						m_iNeedChageIP = 1;
						m_iIpSuccNum = 0;
						m_iIsNeedChangeMac = 1;
					}
				}
				else
				{//注册失败						
					CString strBefore = "<div align=\"center\"><font color='red'>";
					CString strAfter = "</font></div>";
					strFailReason = GetKeyString(m_strWorkBuf,strBefore,strAfter);
					ShowMessage("注册失败:	"+strFailReason);
					rgPack.iStatus = 2;
					rgPack.strMemo = strFailReason;
				}
				AddToShowList(rgPack);
				if (g_iDeleteFlag == 1)
				{
					if (strFailReason.Find("验证码输入错误")<0)
					{
						DeleteRegisterPack(rgPack);												
					}
					else
					{
						m_iCodeErrorNum ++;
						if (m_iCodeErrorNum >= g_iCodeErrorNum)
						{
							ShowMessage("验证码错误次数到达上限,跳过此账号的注册");
							DeleteRegisterPack(rgPack);
							m_iCodeErrorNum = 0;
						}
					}
				}
				else
				{
					DeleteRegisterPack(rgPack);
				}
#ifdef DEBUG
				m_iNeedChageIP = 1;
#endif
				if (m_iNeedChageIP == 1)		//换IP
				{
					DeleteObjectExEx();
					return false;
				}
				if (m_iIsNeedChangeMac == 1)		//换MAC地址
				{
					DeleteObjectExEx();
					return false;
				}
			}
			catch (...)
			{
				DeleteObjectExEx();
				return false;
			}			
		}
		return false;  
	}
	catch (...)
	{
	}
	DeleteObjectExEx();
	return false;            
}