void Stage0(void) { char buf[MAXLEN]; MYSQL_RES *mysql_res; MYSQL_ROW row; snprintf(buf,MAXLEN,"select phone,memo from VIPMAC where MAC='%s'",MAC); mysql_res = ExecSQL(buf,1); row = mysql_fetch_row(mysql_res); if( row ) { snprintf(PHONE,12,row[0]); snprintf(buf,MAXLEN,"insert into Log values('%s','%s','%s',now(),'VIP %s auto online 7 day')", remote_addr(), MAC, PHONE, row[1]); ExecSQL(buf,0); IPOnline(7*24*3600); } snprintf(buf,MAXLEN,"select phone,timestampdiff(second,now(),end) from MACPhone where MAC='%s' and now()< end",MAC); mysql_res = ExecSQL(buf,1); row = mysql_fetch_row(mysql_res); if( row ) { snprintf(PHONE,12,row[0]); snprintf(buf,MAXLEN,"insert into Log values('%s','%s','%s',now(),'auto online %s sec')", remote_addr(), MAC, PHONE, row[1]); ExecSQL(buf,0); IPOnline(atoi(row[1])); } DisplayStage('0',NULL,0); exit(0); }
void IPOnline( int timespan ) { char buf[MAXLEN]; char *url; setuid(0); snprintf(buf,MAXLEN,"/usr/sbin/ipset add -exist user %s,%c%c:%c%c:%c%c:%c%c:%c%c:%c%c timeout %d", remote_addr(), MAC[0],MAC[1],MAC[2],MAC[3],MAC[4],MAC[5],MAC[6],MAC[7],MAC[8],MAC[9],MAC[10],MAC[11], timespan ); system(buf); snprintf(buf,MAXLEN,"insert into IPMACPhone values('%s', '%s','%s',now(), date_add(now(), interval %d second))", remote_addr(),MAC,PHONE,timespan); ExecSQL(buf,0); url=GetValue("url"); if(url && (*url) && (strcmp(url,"URL")!=0)) { if( HtmlHeadOut==0 ) { HtmlHead(); PrintFile("/var/www/html/redir.html"); } printf("<script language=\"javascript\" type=\"text/javascript\">" "window.location.href=\"%s\";</script>\n", url); printf("请继续访问<a href=%s>%s</a><p>",url,url); printf("</body></html>\n"); mysql_close(mysql); exit(0); } DisplayStage('2',"欢迎使用网络",0); }
bool CWizIndexBase::createUserEx(const WIZBIZUSER& data) { qDebug() << "create user, alias: " << data.alias; Q_ASSERT(!data.bizGUID.isEmpty() && !data.userGUID.isEmpty()); CString strFormat = FormatInsertSQLFormat(TABLE_NAME_WIZ_USER, FIELD_LIST_WIZ_USER, PARAM_LIST_WIZ_USER); CString strSQL; strSQL.Format(strFormat, STR2SQL(data.bizGUID).utf16(), STR2SQL(data.userId).utf16(), STR2SQL(data.userGUID).utf16(), STR2SQL(data.alias).utf16(), STR2SQL(data.pinyin).utf16() ); if (!ExecSQL(strSQL)) return false; if (!m_bUpdating) { emit userCreated(data); } return true; }
bool AuthClientUser::SendLogMessage(AnsiString msg) { String warnMsg = FormatStr("%s(%s) : %s", m_UserName, m_ClientIP, String(msg)); GetLog()->Warn(warnMsg); GetThreadManager()->AddGUIMessage(warnMsg); AnsiString sendMsg = msg; sendMsg.Unique(); if(!this->SocketSendBYTE(PT_MSG)) return false; if(!this->SocketSendWORD(sendMsg.Length())) return false; if(!this->SocketSendBuff(sendMsg.c_str(), sendMsg.Length())) return false; if(m_ADOQuery) { m_ADOQuery->SQL->Text = FormatStr("INSERT user_error_msg (accid, cur_time, build, ip, msg) VALUES ('%s', '%s', %d, '%s', '%s')", m_UserName, DateTimeToStr(Now()), m_Build, m_ClientIP, String(msg)); ExecSQL(m_ADOQuery); } // Sleep(1000); return true; }
bool CWizIndexBase::CreateTagEx(const WIZTAGDATA& d) { qDebug() << "create tag, name: " << d.strName; Q_ASSERT(d.strKbGUID == m_strKbGUID); WIZTAGDATA data = d; if (data.strGUID == data.strParentGUID) { data.strParentGUID.clear(); } CString strFormat = FormatInsertSQLFormat(TABLE_NAME_WIZ_TAG, FIELD_LIST_WIZ_TAG, PARAM_LIST_WIZ_TAG); CString strSQL; strSQL.Format(strFormat, STR2SQL(data.strGUID).utf16(), STR2SQL(data.strParentGUID).utf16(), STR2SQL(data.strName).utf16(), STR2SQL(data.strDescription).utf16(), TIME2SQL(data.tModified).utf16(), WizInt64ToStr(data.nVersion).utf16() ); if (!ExecSQL(strSQL)) return false; if (!m_bUpdating) { emit tagCreated(data); } return true; }
bool CWizIndexBase::modifyMessageEx(const WIZMESSAGEDATA& data) { qDebug() << "modify message, id: " << data.nId; WIZMESSAGEDATA dataOld; messageFromId(data.nId, dataOld); CString strFormat = FormatUpdateSQLFormat(TABLE_NAME_WIZ_MESSAGE, FIELD_LIST_WIZ_MESSAGE_MODIFY, TABLE_KEY_WIZ_MESSAGE); CString strSQL; strSQL.Format(strFormat, data.nReadStatus, WizInt64ToStr(data.nVersion).utf16(), WizInt64ToStr(data.nId).utf16() ); if (!ExecSQL(strSQL)) return false; WIZMESSAGEDATA dataNew; messageFromId(data.nId, dataNew); if (!m_bUpdating) { emit messageModified(dataOld, dataNew); } return true; }
bool CWizIndexBase::CreateStyleEx(const WIZSTYLEDATA& data) { qDebug() << "create style, name: " << data.strName; Q_ASSERT(data.strKbGUID == m_strKbGUID); CString strFormat = FormatInsertSQLFormat(TABLE_NAME_WIZ_STYLE, FIELD_LIST_WIZ_STYLE, PARAM_LIST_WIZ_STYLE); CString strSQL; strSQL.Format(strFormat, STR2SQL(data.strGUID).utf16(), STR2SQL(data.strName).utf16(), STR2SQL(data.strDescription).utf16(), COLOR2SQL(data.crTextColor).utf16(), COLOR2SQL(data.crBackColor).utf16(), data.bTextBold ? 1 : 0, data.nFlagIndex, TIME2SQL(data.tModified).utf16(), WizInt64ToStr(data.nVersion).utf16() ); if (!ExecSQL(strSQL)) return false; if (!m_bUpdating) { emit styleCreated(data); } return true; }
int MYSQLC::GetResultSize(PGLOBAL g, PSZ sql) { if (m_Rows < 0) if (ExecSQL(g, sql) != RC_OK) return -1; return m_Rows; } // end of GetResultSize
void __fastcall TSaveObj::SaveDeltas(TClientDataSet* PCds,OleVariant vDeltas) { TCustomClientDataSet *ADS = new TCustomClientDataSet(NULL); try { ADS->Data = vDeltas; ADS->First(); while (!ADS->Eof) { //更新的内容 if ((ADS->UpdateStatus() == usModified) || (ADS->UpdateStatus() == usInserted) || (ADS->UpdateStatus() == usDeleted) ) { AssignPropVal(PCds,ADS,ADS->UpdateStatus()); //得到更新的主键值 if (ADS->UpdateStatus() == usModified) { } //建立sql AnsiString tmp =BuildSql(ADS); if (tmp !="") { int ret =ExecSQL(tmp); FSaveSql = FSaveSql+ tmp; if (ret==-1) { AnsiString strInfo = "保存数据失败 "; strInfo += StrPas(GetLastSQLError()); RaiseErr(strInfo); } else if (ret<0) { try { RaiseErr("保存数据失败,请检查网络是否正常或其他"); } __finally { } } } } ADS->Next(); }
bool CWizIndexBase::CheckTable(const QString& strTableName) { if (m_db.tableExists(strTableName)) return true; // create table if not exist CString strFileName = WizPathAddBackslash2(WizGetResourcesPath() + "sql") + strTableName.toLower() + ".sql"; CString strSQL; if (!WizLoadUnicodeTextFromFile(strFileName, strSQL)) return false; return ExecSQL(strSQL); }
void Stage2() // setonline { char *phone, *password, *p; char buf[MAXLEN]; MYSQL_RES *mysql_res; MYSQL_ROW row; phone = GetValue("phone"); if ((phone == NULL) || (phone[0] == 0)) DisplayStage('0', "输入的电话号码为空", 1); CheckPhone(phone); strncpy(PHONE, phone, 12); password = GetValue("password"); if ((password == NULL) || strlen(password) != 6) DisplayStage('1', "请输入密码", 1); snprintf(buf, MAXLEN, "select pass from PhonePass where phone='%s' and valid>now()", phone); mysql_res = ExecSQL(buf, 1); row = mysql_fetch_row(mysql_res); if (row == NULL) DisplayStage('0', "未查到一周内的电话号码信息,请重新输入", 1); if (strcmp(row[0], password) != 0) { DisplayStage('1', "密码错误,请重新输入", 1); } p = GetValue("timespan"); if ((p == NULL) || (*p == 0)) p = "1"; else *(p + 1) = 0; if ((*p != '1') && (*p != '7')) p = "1"; snprintf(buf, MAXLEN, "replace into MACPhone values('%s','%s',now(), date_add(now(), interval %s day))", MAC, PHONE, p); ExecSQL(buf, 0); snprintf(buf, MAXLEN, "insert into Log values('%s','%s','%s',now(),'online %s day')", remote_addr(), MAC, PHONE, p); ExecSQL(buf, 0); IPOnline((*p - '0') * 24 * 3600); }
//创建超过时间删除表的存储过程 int DBInterface::createprocessdeletetable() { string processname = "pro_deletable"; string strSQL = ""; ifexitdeletprocess(processname); strSQL = "create proc pro_deletable @killtablename varchar(128),@killdate int "; strSQL+= " as"; strSQL+= " declare @t varchar(100),@cnt int"; strSQL+= " select @cnt=count(*) from sysobjects where name=''+@killtablename+ ''and xtype='U' and datediff(day,crdate,getdate())>=''+@killdate+''"; strSQL+= " if @cnt>0"; strSQL+= " begin"; strSQL+= " exec('drop table '+@killtablename)"; strSQL+= " end"; return ExecSQL( strSQL.c_str()); }
bool GenerateCard(TADOQuery *query, String cardType, int cnt) { query->SQL->Clear(); for(int i=0; i<cnt; i++) { query->SQL->Clear(); query->SQL->Add(FormatStr("INSERT wow_card (card_no, card_type, is_card_send, create_time) VALUES ('%s', '%s', %d, '%s')", CreateCardNo(cardType), cardType, 0, DateTimeToStr(Now())) ); if(!ExecSQL(query)) { return false; } } return true; }
void GetMAC(char *ip) { FILE *fp; char buf[MAXLEN]; MYSQL_RES *mysql_res; MYSQL_ROW row; int len; MAC[0] = 0; len = strlen(ip); fp = fopen("/proc/net/arp", "r"); if (!fp) return; while (fgets(buf, MAXLEN, fp)) { if (strlen(buf) < 64) continue; if (strncmp(buf, ip, len) != 0) continue; if (buf[len] != ' ') continue; MAC[0] = buf[41]; MAC[1] = buf[42]; MAC[2] = buf[44]; MAC[3] = buf[45]; MAC[4] = buf[47]; MAC[5] = buf[48]; MAC[6] = buf[50]; MAC[7] = buf[51]; MAC[8] = buf[53]; MAC[9] = buf[54]; MAC[10] = buf[56]; MAC[11] = buf[57]; MAC[12] = 0; } fclose(fp); snprintf(buf, MAXLEN, "select msg from black where black='%s'", MAC); mysql_res = ExecSQL(buf, 1); row = mysql_fetch_row(mysql_res); if (row) { snprintf(buf, MAXLEN, "此MAC地址禁用(%s)", row[0]); DisplayStage('0', buf, 1); } }
bool CWizIndexBase::deleteMessageEx(const WIZMESSAGEDATA& data) { qDebug() << "delete message, id: " << data.nId; CString strFormat = FormatDeleteSQLFormat(TABLE_NAME_WIZ_MESSAGE, TABLE_KEY_WIZ_MESSAGE); CString strSQL; strSQL.Format(strFormat, WizInt64ToStr(data.nId).utf16() ); if (!ExecSQL(strSQL)) return false; if (!m_bUpdating) { emit messageDeleted(data); } return true; }
bool CWizIndexBase::DeleteDocumentEx(const WIZDOCUMENTDATA& data) { qDebug() << "delete document, title: " << data.strTitle; Q_ASSERT(data.strKbGUID == m_strKbGUID); CString strFormat = FormatDeleteSQLFormat(TABLE_NAME_WIZ_DOCUMENT, TABLE_KEY_WIZ_DOCUMENT); CString strSQL; strSQL.Format(strFormat, STR2SQL(data.strGUID).utf16() ); if (!ExecSQL(strSQL)) return false; if (!m_bUpdating) { emit documentDeleted(data); } return true; }
void CheckPhone(char*phone) { char *p; char buf[MAXLEN]; MYSQL_RES *mysql_res; MYSQL_ROW row; if(strlen(phone)!=11) DisplayStage('0',"电话号码必须是11位数字",1); for(p=phone;*p;p++) { if(*p>='0' && *p<='9') continue; DisplayStage('0',"电话号码必须是数字",1); } if(*phone!='1') DisplayStage('0',"电话号码必须是数字1开头",1); snprintf(buf,MAXLEN,"select msg from black where black='%s'",phone); mysql_res = ExecSQL(buf,1); row = mysql_fetch_row(mysql_res); if( row ) { snprintf(buf,MAXLEN,"此电话号码禁用(%s)",row[0]); DisplayStage('0',buf,1); } }
bool CWizIndexBase::DeleteStyleEx(const WIZSTYLEDATA& data) { qDebug() << "delete style, name: " << data.strName; Q_ASSERT(data.strKbGUID == m_strKbGUID); CString strFormat = FormatDeleteSQLFormat(TABLE_NAME_WIZ_STYLE, TABLE_KEY_WIZ_STYLE); CString strSQL; strSQL.Format(strFormat, STR2SQL(data.strGUID).utf16() ); if (!ExecSQL(strSQL)) return false; if (!m_bUpdating) { emit styleDeleted(data); } return true; }
bool CWizIndexBase::createMessageEx(const WIZMESSAGEDATA& data) { qDebug() << "create message, id: " << data.nId; CString strFormat = FormatInsertSQLFormat(TABLE_NAME_WIZ_MESSAGE, FIELD_LIST_WIZ_MESSAGE, PARAM_LIST_WIZ_MESSAGE); CString strSQL; strSQL.Format(strFormat, WizInt64ToStr(data.nId).utf16(), STR2SQL(data.bizGUID).utf16(), STR2SQL(data.kbGUID).utf16(), STR2SQL(data.documentGUID).utf16(), STR2SQL(data.senderAlias).utf16(), STR2SQL(data.senderId).utf16(), STR2SQL(data.senderGUID).utf16(), STR2SQL(data.receiverAlias).utf16(), STR2SQL(data.receiverId).utf16(), STR2SQL(data.receiverGUID).utf16(), data.nMessageType, data.nReadStatus, TIME2SQL(data.tCreated).utf16(), STR2SQL(data.title).utf16(), STR2SQL(data.messageBody).utf16(), WizInt64ToStr(data.nVersion).utf16() ); if (!ExecSQL(strSQL)) return false; if (!m_bUpdating) { emit messageCreated(data); } return true; }
bool CWizIndexBase::ModifyTagEx(const WIZTAGDATA& d) { qDebug() << "modify tag, name: " << d.strName; Q_ASSERT(d.strKbGUID == m_strKbGUID); WIZTAGDATA dataOld; TagFromGUID(d.strGUID, dataOld); WIZTAGDATA data = d; if (data.strGUID == data.strParentGUID) { data.strParentGUID.Empty(); } CString strFormat = FormatUpdateSQLFormat(TABLE_NAME_WIZ_TAG, FIELD_LIST_WIZ_TAG_MODIFY, TABLE_KEY_WIZ_TAG); CString strSQL; strSQL.Format(strFormat, STR2SQL(data.strParentGUID).utf16(), STR2SQL(data.strName).utf16(), STR2SQL(data.strDescription).utf16(), TIME2SQL(data.tModified).utf16(), WizInt64ToStr(data.nVersion).utf16(), STR2SQL(data.strGUID).utf16() ); if (!ExecSQL(strSQL)) return false; WIZTAGDATA dataNew; TagFromGUID(d.strGUID, dataNew); if (!m_bUpdating) { emit tagModified(dataOld, dataNew); } return true; }
bool CWizIndexBase::DeleteAttachmentEx(const WIZDOCUMENTATTACHMENTDATA& data) { qDebug() << "delete attachment, name: " << data.strName; Q_ASSERT(data.strKbGUID == m_strKbGUID); CString strFormat = FormatDeleteSQLFormat(TABLE_NAME_WIZ_DOCUMENT_ATTACHMENT, "ATTACHMENT_GUID"); CString strSQL; strSQL.Format(strFormat, STR2SQL(data.strGUID).utf16() ); if (!ExecSQL(strSQL)) return false; if (!m_bUpdating) { emit attachmentDeleted(data); } return true; }
bool CWizIndexBase::CreateAttachmentEx(const WIZDOCUMENTATTACHMENTDATA& data) { qDebug() << "create attachment, name: " << data.strName; Q_ASSERT(data.strKbGUID == m_strKbGUID); //CString strInfoMD5 = CalDocumentAttachmentInfoMD5(data); //if (strInfoMD5 != data.strInfoMD5) { // TOLOG2(_T("Warning: Attachment info md5 does not match: %1, %2"), strInfoMD5, data.strInfoMD5); //} CString strFormat = FormatInsertSQLFormat(TABLE_NAME_WIZ_DOCUMENT_ATTACHMENT, FIELD_LIST_WIZ_DOCUMENT_ATTACHMENT, PARAM_LIST_WIZ_DOCUMENT_ATTACHMENT); CString strSQL; strSQL.Format(strFormat, STR2SQL(data.strGUID).utf16(), STR2SQL(data.strDocumentGUID).utf16(), STR2SQL(data.strName).utf16(), STR2SQL(data.strURL).utf16(), STR2SQL(data.strDescription).utf16(), TIME2SQL(data.tInfoModified).utf16(), STR2SQL(data.strInfoMD5).utf16(), TIME2SQL(data.tDataModified).utf16(), STR2SQL(data.strDataMD5).utf16(), WizInt64ToStr(data.nVersion).utf16() ); if (!ExecSQL(strSQL)) return false; if (!m_bUpdating) { emit attachmentCreated(data); } return true; }
bool CWizIndexBase::ModifyAttachmentInfoEx(const WIZDOCUMENTATTACHMENTDATA& data) { qDebug() << "modify attachment, name: " << data.strName; Q_ASSERT(data.strKbGUID == m_strKbGUID); WIZDOCUMENTATTACHMENTDATA dataOld; AttachmentFromGUID(data.strGUID, dataOld); CString strFormat = FormatUpdateSQLFormat(TABLE_NAME_WIZ_DOCUMENT_ATTACHMENT, FIELD_LIST_WIZ_DOCUMENT_ATTACHMENT_MODIFY, TABLE_KEY_WIZ_DOCUMENT_ATTACHMENT); CString strSQL; strSQL.Format(strFormat, STR2SQL(data.strName).utf16(), STR2SQL(data.strURL).utf16(), STR2SQL(data.strDescription).utf16(), TIME2SQL(data.tInfoModified).utf16(), STR2SQL(data.strInfoMD5 ).utf16(), TIME2SQL(data.tDataModified).utf16(), STR2SQL(data.strDataMD5 ).utf16(), WizInt64ToStr(data.nVersion).utf16(), STR2SQL(data.strGUID).utf16() ); if (!ExecSQL(strSQL)) return false; WIZDOCUMENTATTACHMENTDATA dataNew; AttachmentFromGUID(data.strGUID, dataNew); if (!m_bUpdating) { emit attachmentModified(dataOld, dataNew); } return true; }
bool CWizIndexBase::modifyUserEx(const WIZBIZUSER& user) { qDebug() << "modify user, alias: " << user.alias; Q_ASSERT(!user.bizGUID.isEmpty() && !user.userGUID.isEmpty()); // save old user info WIZBIZUSER userOld; userFromGUID(user.bizGUID, user.userGUID, userOld); CString strWhere = "BIZ_GUID=%s AND USER_GUID=%s"; strWhere = strWhere.arg(STR2SQL(user.bizGUID)).arg(STR2SQL(user.userGUID)); CString strFormat = FormatUpdateSQLByWhere(TABLE_NAME_WIZ_USER, FIELD_LIST_WIZ_USER_MODIFY, strWhere); CString strSQL; strSQL.Format(strFormat, STR2SQL(user.alias).utf16(), STR2SQL(user.pinyin).utf16() ); if (!ExecSQL(strSQL)) return false; // read new user info WIZBIZUSER userNew; userFromGUID(user.bizGUID, user.userGUID, userNew); if (!m_bUpdating) { emit userModified(userOld, userNew); } return true; }
bool CWizIndexBase::ModifyStyleEx(const WIZSTYLEDATA& data) { qDebug() << "modify style, name: " << data.strName; Q_ASSERT(data.strKbGUID == m_strKbGUID); WIZSTYLEDATA dataOld; StyleFromGUID(data.strGUID, dataOld); CString strFormat = FormatUpdateSQLFormat(TABLE_NAME_WIZ_STYLE, FIELD_LIST_WIZ_STYLE_MODIFY, TABLE_KEY_WIZ_STYLE); CString strSQL; strSQL.Format(strFormat, STR2SQL(data.strName).utf16(), STR2SQL(data.strDescription).utf16(), COLOR2SQL(data.crTextColor).utf16(), COLOR2SQL(data.crBackColor).utf16(), data.bTextBold ? 1 : 0, data.nFlagIndex, TIME2SQL(data.tModified).utf16(), WizInt64ToStr(data.nVersion).utf16(), STR2SQL(data.strGUID).utf16() ); if (!ExecSQL(strSQL)) return false; WIZSTYLEDATA dataNew; StyleFromGUID(data.strGUID, dataNew); if (!m_bUpdating) { emit styleModified(dataOld, dataNew); } return true; }
//--------------------------------------------------------------------------- void TServerModeDemoDataDM::CreateTable() { String ASQL; ASQL = "IF OBJECT_ID(N\'" + GetDatabaseName() + ".dbo." + GetTableName() + "\') IS NULL" + sLineBreak + "CREATE TABLE \"dbo\".\"" + GetTableName() + "\"(" + " \"OID\" int IDENTITY(1,1) NOT NULL, \"Subject\" nvarchar(100) NULL," + "\"From\" nvarchar(100) NULL," + " \"Sent\" datetime NULL," + " \"Size\" bigint NULL," + " \"HasAttachment\" bit NULL," + " \"Priority\" int NULL," + " CONSTRAINT \"PK_' + ATableName + '\" PRIMARY KEY CLUSTERED" + "(" + " \"OID\" ASC" + ")WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON \"PRIMARY\"" + ") ON \"PRIMARY\";"; ExecSQL(ASQL); ExecSQL("CREATE NONCLUSTERED INDEX iSubject_ServerModeGridTableDemo ON \"ServerModeGridTableDemo\" (\"Subject\");"); ExecSQL("CREATE NONCLUSTERED INDEX iFrom_ServerModeGridTableDemo ON \"ServerModeGridTableDemo\" (\"From\");"); ExecSQL("CREATE NONCLUSTERED INDEX iSent_ServerModeGridTableDemo ON \"ServerModeGridTableDemo\" (\"Sent\");"); ExecSQL("CREATE NONCLUSTERED INDEX iSize_ServerModeGridTableDemo ON \"ServerModeGridTableDemo\" (\"Size\");"); ExecSQL("CREATE NONCLUSTERED INDEX iHasAttachment_ServerModeGridTableDemo ON \"ServerModeGridTableDemo\" (\"HasAttachment\");"); ExecSQL("CREATE NONCLUSTERED INDEX iPriority_ServerModeGridTableDemo ON \"ServerModeGridTableDemo\" (\"Priority\");"); }
//²Ù×÷Ô±µÇ¼ bool __fastcall TfrmLogin::LoginSys(AnsiString sLginNo, AnsiString sLginPwd) { AnsiString strSQL,strInfo; int iRet; Screen->Cursor = crHourGlass; #if 0 Lguser.IsAdmin = true; Lguser.bLoginOk = true; Screen->Cursor = crDefault; return true; #endif if (sLginPwd.IsEmpty()) { strSQL = "select * from T_en_user where UR_USERID ='"+sLginNo +"' and user_pwd is null"; } else { strSQL = "select * from T_en_user where UR_USERID ='"+sLginNo +"' and UR_PASSWORD=\'"+ sLginPwd +"\'"; } char tmp; //tmp = PAY_USER_ACTIVE ; //strSQL = strSQL+ " and UR_STATUS="+QuotedStr(atoi(&tmp)); try { iRet = ExecSQL(strSQL,true,dmMain->cDataSetQry); } catch(...) { strInfo = "µÇ¼ʧ°Ü¡£"; ShowDlg(strInfo, DLG_ICONWARNING); return false; } if (iRet == -1) { strInfo = "µÇ¼ʧ°Ü "; strInfo += StrPas(GetLastSQLError()); ShowDlg(strInfo, DLG_ICONWARNING); return false; } else if (iRet == -2) { strInfo = "²ÎÊý´íÎó¡£"; ShowDlg(strInfo, DLG_ICONWARNING); return false; } if (dmMain->cDataSetQry->RecordCount < 1) { strInfo = "Î޴˲Ù×÷Ô±»òÃÜÂë´íÎó¡£"; ShowDlg(strInfo, DLG_ICONWARNING); dmMain->cDataSetQry->Close(); return false;; } else { Lguser.sLoginNo = dmMain->cDataSetQry->FieldByName("UR_USERID")->AsString; Lguser.sLoginName = dmMain->cDataSetQry->FieldByName("UR_USERNAME")->AsString; Lguser.sPwd = dmMain->cDataSetQry->FieldByName("UR_PASSWORD")->AsString; Lguser.MenuRigth = dmMain->cDataSetQry->FieldByName("ur_MenuRight")->AsString; AnsiString tmpstr = dmMain->cDataSetQry->FieldByName("ur_isAdmin")->AsString; Lguser.IsAdmin = (tmpstr =="1"); //Lguser.uProp = dmMain->cDataSetQry->FieldByName("user_prop")->AsInteger; Lguser.sMemo = dmMain->cDataSetQry->FieldByName("user_memo")->AsString; Lguser.IsAdmin = true; Lguser.bLoginOk = true; } Screen->Cursor = crDefault; return true; }
void Stage1() // sendsms, dispay input page { char *phone,*p; char buf[MAXLEN]; char pass[MAXLEN]; MYSQL_RES *mysql_res; MYSQL_ROW row; FILE *fp; p = GetValue("changenum"); if ( p ) DisplayStage('0',"请输入电话号码",0); phone = GetValue("phone"); if( phone==NULL || phone[0]==0 ) DisplayStage('0',"输入的电话号码为空",1); CheckPhone(phone); strncpy(PHONE,phone,12); p = GetValue("havepass"); if(p) DisplayStage('1',"请输入密码",0); // 检查该设备当天是否发送过短信, 每天最多 MAXPERMAC snprintf(buf,MAXLEN,"select count from MACcount where MAC='%s' and sendday=curdate()",MAC); mysql_res = ExecSQL(buf,1); row = mysql_fetch_row(mysql_res); if( row ) { if( atoi(row[0]) >= MAXPERMAC ) { sprintf(buf,"每台设备每天允许%d手机登录,今天已经使用%s次,请换台设备再试",MAXPERMAC,row[0]); DisplayStage('0',buf,1); } snprintf(buf,MAXLEN,"update MACcount set count=count+1 where MAC='%s' and sendday=curdate()",MAC); ExecSQL(buf,0); } else { snprintf(buf,MAXLEN,"replace into MACcount values ('%s', now(), 1)",MAC); ExecSQL(buf,0); } // 检查手机当天是否发送过短信, 每天最多 MAXPERPHONE snprintf(buf,MAXLEN,"select count from Phonecount where phone='%s' and sendday=curdate()",PHONE); mysql_res = ExecSQL(buf,1); row = mysql_fetch_row(mysql_res); if( row ) { if( atoi(row[0]) >= MAXPERPHONE ) { sprintf(buf,"每个手机每天允许%d短信,今天已经使用%s次,请换手机再试",MAXPERPHONE,row[0]); DisplayStage('0',buf,1); } snprintf(buf,MAXLEN,"update Phonecount set count=count+1 where phone='%s' and sendday=curdate()",PHONE); ExecSQL(buf,0); } else { snprintf(buf,MAXLEN,"replace into Phonecount values ('%s', now(), 1)",PHONE); ExecSQL(buf,0); } snprintf(buf,MAXLEN,"select pass from PhonePass where phone='%s' and now()<valid",PHONE); mysql_res = ExecSQL(buf,1); row = mysql_fetch_row(mysql_res); if( row==NULL ) { srand(time(NULL)); int i; for(i=0;i<6;i++) { int r; r=rand(); pass[i]='0' + r%10; } pass[6]=0; } else strncpy(pass,row[0],7); snprintf(buf,MAXLEN,"replace into PhonePass values ('%s', '%s', date_add(now(), interval 8 day) )",PHONE,pass); ExecSQL(buf,0); snprintf(buf,MAXLEN,"php /usr/src/sendsms/sendsms.php %s \"%s是您在中国科大访客WLAN密码,一周内都可以使用本密码登录,请保留本短信。\" 2>/dev/null",PHONE,pass); fp=popen(buf,"r"); if(fp==NULL){ snprintf(buf,MAXLEN,"insert into Log values('%s','%s','%s',now(),'send pass error')", remote_addr(), MAC, PHONE); ExecSQL(buf,0); DisplayStage('0',"密码发送失败",1); } fgets(buf,MAXLEN,fp); if(strncmp(buf,"OK",2)==0) { snprintf(buf,MAXLEN,"insert into Log values('%s','%s','%s',now(),'send pass ok')", remote_addr(), MAC, PHONE); ExecSQL(buf,0); DisplayStage('1',"请输入手机上收到的密码",0); } else { char tmp[MAXLEN]; strncpy(tmp,buf,MAXLEN); snprintf(buf,MAXLEN,"insert into Log values('%s','%s','%s',now(),'send pass error %s')", remote_addr(), MAC, PHONE,tmp); ExecSQL(buf,0); DisplayStage('0',tmp,1); } }
void AuthClientUser::OnLoginSuccess() { m_ADOQuery->SQL->Text = FormatStr("UPDATE wow_user SET last_login_time='%s', login_count=login_count+1, login_ip='%s' where accid = '%s'", DateTimeToStr(Now()), m_ClientIP, m_UserName); ExecSQL(m_ADOQuery); }
bool AuthClientUser::OnUserFirstLogin(vector<String> *outputMsg) { //1. 取一张免费卡 vector<tagCardInfo> freeCardList; for(int i=0; i<GetAuthServerListener()->GetCardInfoCount(); i++) { tagCardInfo *info = GetAuthServerListener()->GetCardInfoByIndex(i); if(!info) continue; if(info->CardMoney != 0) continue; freeCardList.push_back(*info); } sort(freeCardList.begin(), freeCardList.end(),greater<tagCardInfo>()); String cardType, cardNo; for(DWORD i=0; i<freeCardList.size(); i++) { if(GetCard(m_ADOQuery, freeCardList[i].CardType, &cardNo, outputMsg)) { cardType = freeCardList[i].CardType; break; } } if(cardNo == "") { if(m_IsChargeProcess == 0) { //免费卡已经发放完毕 outputMsg->push_back(GBText("免费卡已经发放完毕, 请注册!")); SendRegMessage(); return false; } else { outputMsg->push_back(GBText("对不起, 免费卡已经发放完毕!")); } } //2. 创建用户 String nowStr = DateTimeToStr(Now()); m_ADOQuery->SQL->Text = FormatStr("INSERT wow_user (" "accid, last_login_time, login_count, start_time, end_time, " "total_time, money_total_time, money, login_ip, create_time, " "create_ip) VALUES(" "'%s', '%s', %d, '%s', '%s'," "%d, %d, %d, '%s', '%s'," "'%s'" ")", m_UserName, nowStr, 0, nowStr, nowStr, 0, 0, 0, m_ClientIP, nowStr, m_ClientIP ); if(!ExecSQL(m_ADOQuery)) { outputMsg->push_back(GBText("错误(9)")); return false; } m_ADOQuery->SQL->Text = FormatStr("SELECT * FROM wow_msg where msg_key = '%s'", L"first_login"); if(!OpenSQL(m_ADOQuery)) { outputMsg->push_back(GBText("错误(10)")); return false; } if(m_ADOQuery->RecordCount) { m_ADOQuery->First(); String text = m_ADOQuery->FieldByName("msg")->AsString; outputMsg->push_back(text); } //3. 充值 if(cardNo != "") { if(!Charge(m_ADOQuery, m_UserName, cardNo, outputMsg)) { return false; } } return true; }