这篇教程C++ utf8length函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中utf8length函数的典型用法代码示例。如果您正苦于以下问题:C++ utf8length函数的具体用法?C++ utf8length怎么用?C++ utf8length使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了utf8length函数的30个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: ChangeUsernameAccountOpResult ChangeUsername(uint32 accountId, std::string newUsername, std::string newPassword){ QueryResult result = LoginDatabase.PQuery("SELECT 1 FROM account WHERE id='%d'", accountId); if (!result) return AOR_NAME_NOT_EXIST; // account doesn't exist if (utf8length(newUsername) > MAX_ACCOUNT_STR) return AOR_NAME_TOO_LONG; if (utf8length(newPassword) > MAX_ACCOUNT_STR) return AOR_PASS_TOO_LONG; normalizeString(newUsername); normalizeString(newPassword); PreparedStatement* stmt = LoginDatabase.GetPreparedStatement(LOGIN_UPD_USERNAME); stmt->setString(0, newUsername); stmt->setString(1, CalculateShaPassHash(newUsername, newPassword)); stmt->setUInt32(2, accountId); LoginDatabase.Execute(stmt); return AOR_OK;}
开发者ID:Havenard,项目名称:tmpFaceCore,代码行数:25,
示例2: CalculateShaPassHashAccountOpResult Battlenet::AccountMgr::CreateBattlenetAccount(std::string email, std::string password, bool withGameAccount, std::string* gameAccountName){ if (utf8length(email) > MAX_BNET_EMAIL_STR) return AccountOpResult::AOR_NAME_TOO_LONG; if (utf8length(password) > MAX_PASS_STR) return AccountOpResult::AOR_PASS_TOO_LONG; Utf8ToUpperOnlyLatin(email); Utf8ToUpperOnlyLatin(password); if (GetId(email)) return AccountOpResult::AOR_NAME_ALREADY_EXIST; PreparedStatement* stmt = LoginDatabase.GetPreparedStatement(LOGIN_INS_BNET_ACCOUNT); stmt->setString(0, email); stmt->setString(1, CalculateShaPassHash(email, password)); LoginDatabase.DirectExecute(stmt); uint32 newAccountId = GetId(email); ASSERT(newAccountId); if (withGameAccount) { *gameAccountName = std::to_string(newAccountId) + "#1"; GameAccountMgr::instance()->CreateAccount(*gameAccountName, password, email, newAccountId, 1); } return AccountOpResult::AOR_OK;}
开发者ID:Jildor,项目名称:TrinityCore,代码行数:30,
示例3: ChangeUsernameAccountOpResult ChangeUsername(uint32 accountId, std::string newUsername, std::string newPassword){ // Check if accounts exists PreparedStatement* stmt = LoginDatabase.GetPreparedStatement(LOGIN_SEL_ACCOUNT_BY_ID); stmt->setUInt32(0, accountId); PreparedQueryResult result = LoginDatabase.Query(stmt); if (!result) return AOR_NAME_NOT_EXIST; if (utf8length(newUsername) > MAX_ACCOUNT_STR) return AOR_NAME_TOO_LONG; if (utf8length(newPassword) > MAX_ACCOUNT_STR) return AOR_PASS_TOO_LONG; normalizeString(newUsername); normalizeString(newPassword); stmt = LoginDatabase.GetPreparedStatement(LOGIN_UPD_USERNAME); stmt->setString(0, newUsername); stmt->setString(1, CalculateShaPassHash(newUsername, newPassword)); stmt->setUInt32(2, accountId); LoginDatabase.Execute(stmt); return AOR_OK;}
开发者ID:Capobest,项目名称:TrinityCore,代码行数:29,
示例4: ChangeUsernameAccountOpResult AccountMgr::ChangeUsername(uint32 accid, std::string new_uname, std::string new_passwd){ QueryResult* result = LoginDatabase.PQuery("SELECT 1 FROM account WHERE id='%u'", accid); if (!result) return AOR_NAME_NOT_EXIST; // account doesn't exist delete result; if (utf8length(new_uname) > MAX_ACCOUNT_STR) return AOR_NAME_TOO_LONG; if (utf8length(new_passwd) > MAX_ACCOUNT_STR) return AOR_PASS_TOO_LONG; normalizeString(new_uname); normalizeString(new_passwd); std::string safe_new_uname = new_uname; LoginDatabase.escape_string(safe_new_uname); if (!LoginDatabase.PExecute("UPDATE account SET v='0',s='0',username='%s',sha_pass_hash='%s' WHERE id='%u'", safe_new_uname.c_str(), CalculateShaPassHash(new_uname, new_passwd).c_str(), accid)) return AOR_DB_INTERNAL_ERROR; // unexpected error return AOR_OK;}
开发者ID:beyourself,项目名称:RustEmu-Core,代码行数:25,
示例5: ChangeUsernameAccountOpResult AccountMgr::ChangeUsername(uint32 accountId, std::string newUsername, std::string newPassword) { QueryResult result = LoginDatabase.PQuery( "SELECT 1 FROM account WHERE id = '%d'", accountId); if (!result) return AOR_NAME_NOT_EXIST; // account doesn't exist if (utf8length(newUsername) > MAX_ACCOUNT_STR) return AOR_NAME_TOO_LONG; if (utf8length(newPassword) > MAX_ACCOUNT_STR) return AOR_PASS_TOO_LONG; normalizeString(newUsername); normalizeString(newPassword); std::string safeNewUsername = newUsername; LoginDatabase.EscapeString(safeNewUsername); LoginDatabase.PExecute( "UPDATE account SET v='0', s='0', username='%s', sha_pass_hash='%s' WHERE id='%d'", safeNewUsername.c_str(), CalculateShaPassHash(newUsername, newPassword).c_str(), accountId); return AOR_OK;}
开发者ID:TDMarko,项目名称:ArkCORE,代码行数:25,
示例6: ChangeUsernameAccountOpResult AccountMgr::ChangeUsername(uint32 accid, std::string new_uname, std::string new_passwd){ QueryResult *result = LoginDatabase.PQuery("SELECT 1 FROM account WHERE id='%u'", accid); if(!result) return AOR_NAME_NOT_EXIST; // account doesn't exist delete result; if(utf8length(new_uname) > MAX_ACCOUNT_STR) return AOR_NAME_TOO_LONG; if(utf8length(new_passwd) > MAX_ACCOUNT_STR) return AOR_PASS_TOO_LONG; normalizeString(new_uname); normalizeString(new_passwd); std::string safe_new_uname = new_uname; LoginDatabase.escape_string(safe_new_uname); if(!LoginDatabase.PExecute("UPDATE account SET v='0',s='0',username='%s',sha_pass_hash='%s' WHERE id='%u'", safe_new_uname.c_str(), CalculateShaPassHash(new_uname, new_passwd).c_str(), accid)) return AOR_DB_INTERNAL_ERROR; // unexpected error if(sWorld.getConfig(CONFIG_BOOL_PLAINTEXT_PASSWORDS)) { // FG: to keep consistency with old realm db fields also if(!LoginDatabase.PExecute("UPDATE `account` SET `password`='%s' WHERE `id`='%d'", new_passwd.c_str(),accid)) return AOR_DB_INTERNAL_ERROR; // unexpected error } return AOR_OK;}
开发者ID:Wisznu,项目名称:mangos,代码行数:32,
示例7: SDL_TRACEvoid NormalizeUtf8::normalizeNfc(std::string& str) const { SDL_TRACE(NormalizeUtf8, "unnormalized: '" << str << "' #bytes=" << str.size() << " #unicode=" << utf8length(str)); if (str.empty()) return; FixedUtf8 fixed(str); fixed.moveTo(str); SDL_TRACE(NormalizeUtf8, "fixed-utf8: '" << str << "' #bytes=" << str.size() << " #unicode=" << utf8length(str)); NfcOptions::normalize(str); SDL_TRACE(NormalizeUtf8, "nfc-normalized: '" << str << "' #bytes=" << str.size() << " #unicode=" << utf8length(str));}
开发者ID:anibalanto,项目名称:hyp,代码行数:11,
示例8: CreateAccountAccountOpResult AccountMgr::CreateAccount(std::string username, std::string password){ if (utf8length(username) > MAX_ACCOUNT_STR) return AOR_NAME_TOO_LONG; // username's too long normalizeString(username); normalizeString(password); if (GetId(username)) return AOR_NAME_ALREDY_EXIST; // username does already exist PreparedStatement* stmt = LoginDatabase.GetPreparedStatement(LOGIN_INS_ACCOUNT); stmt->setString(0, username); stmt->setString(1, CalculateShaPassHash(username, password)); LoginDatabase.DirectExecute(stmt); // Enforce saving, otherwise AddGroup can fail stmt = LoginDatabase.GetPreparedStatement(LOGIN_INS_REALM_CHARACTERS_INIT); LoginDatabase.Execute(stmt); // Add default rbac groups for that security level RBACData* rbac = new RBACData(GetId(username), username, -1); // No need to Load From DB, as it's new data RBACGroupContainer const& groupsToAdd = _defaultSecGroups[0]; // 0: Default sec level for (RBACGroupContainer::const_iterator it = groupsToAdd.begin(); it != groupsToAdd.end(); ++it) rbac->AddGroup(*it, -1); delete rbac; return AOR_OK; // everything's fine}
开发者ID:kulebron,项目名称:TrinityCore,代码行数:34,
示例9: ChangeRegEmailAccountOpResult AccountMgr::ChangeRegEmail(uint32 accountId, std::string newEmail){ std::string username; if (!GetName(accountId, username)) { sScriptMgr->OnFailedEmailChange(accountId); return AOR_NAME_NOT_EXIST; // account doesn't exist } if (utf8length(newEmail) > MAX_EMAIL_STR) { sScriptMgr->OnFailedEmailChange(accountId); return AOR_EMAIL_TOO_LONG; } normalizeString(username); normalizeString(newEmail); PreparedStatement* stmt = LoginDatabase.GetPreparedStatement(LOGIN_UPD_REG_EMAIL); stmt->setString(0, newEmail); stmt->setUInt32(1, accountId); LoginDatabase.Execute(stmt); sScriptMgr->OnEmailChange(accountId); return AOR_OK;}
开发者ID:redlaine,项目名称:TrinityCore,代码行数:29,
示例10: CreateAccount AccountOpResult CreateAccount(std::string username, std::string password) { if (utf8length(username) > MAX_ACCOUNT_STR) return AOR_NAME_TOO_LONG; // username's too long normalizeString(username); normalizeString(password); if (GetId(username)) return AOR_NAME_ALREDY_EXIST; // username does already exist PreparedStatement* stmt = LoginDatabase.GetPreparedStatement(LOGIN_INS_ACCOUNT); stmt->setString(0, username); stmt->setString(1, CalculateShaPassHash(username, password)); stmt->setInt8(2, uint8(sWorld->getIntConfig(CONFIG_EXPANSION))); LoginDatabase.Execute(stmt); stmt = LoginDatabase.GetPreparedStatement(LOGIN_INS_REALM_CHARACTERS_INIT); LoginDatabase.Execute(stmt); return AOR_OK; // everything's fine }
开发者ID:lineagedr,项目名称:azerothcore-wotlk,代码行数:25,
示例11: CreateAccountAccountOpResult AccountMgr::CreateAccount(std::string username, std::string password){ if(utf8length(username) > MAX_ACCOUNT_STR) return AOR_NAME_TOO_LONG; // username's too long normalizeString(username); normalizeString(password); if(GetId(username)) { return AOR_NAME_ALREDY_EXIST; // username does already exist } if(!LoginDatabase.PExecute("INSERT INTO account(username,sha_pass_hash,joindate) VALUES('%s','%s',NOW())", username.c_str(), CalculateShaPassHash(username, password).c_str())) return AOR_DB_INTERNAL_ERROR; // unexpected error LoginDatabase.Execute("INSERT INTO realmcharacters (realmid, acctid, numchars) SELECT realmlist.id, account.id, 0 FROM realmlist,account LEFT JOIN realmcharacters ON acctid=account.id WHERE acctid IS NULL"); if(sWorld.getConfig(CONFIG_BOOL_PLAINTEXT_PASSWORDS)) { // FG: to keep consistency with old realm db fields also if(!LoginDatabase.PExecute("UPDATE account SET password='%s' WHERE username='%s'", password.c_str(),username.c_str())) return AOR_DB_INTERNAL_ERROR; // unexpected error } return AOR_OK; // everything's fine}
开发者ID:Wisznu,项目名称:mangos,代码行数:26,
示例12: ChangePasswordAccountOpResult AccountMgr::ChangePassword(uint32 accid, std::string new_passwd){ std::string username; if(!GetName(accid, username)) return AOR_NAME_NOT_EXIST; // account doesn't exist if (utf8length(new_passwd) > MAX_ACCOUNT_STR) return AOR_PASS_TOO_LONG; normalizeString(new_passwd); // also reset s and v to force update at next realmd login if(!LoginDatabase.PExecute("UPDATE account SET v='0', s='0', sha_pass_hash='%s' WHERE id='%u'", CalculateShaPassHash(username, new_passwd).c_str(), accid)) return AOR_DB_INTERNAL_ERROR; // unexpected error if(sWorld.getConfig(CONFIG_BOOL_PLAINTEXT_PASSWORDS)) { // FG: to keep consistency with old realm db fields also if(!LoginDatabase.PExecute("UPDATE `account` SET `password`='%s' WHERE `id`='%d'", new_passwd.c_str(),accid)) return AOR_DB_INTERNAL_ERROR; // unexpected error } return AOR_OK;}
开发者ID:Wisznu,项目名称:mangos,代码行数:26,
示例13: CreateAccountAccountOpResult AccountMgr::CreateAccount(std::string username, std::string password, std::string email = ""){ if (utf8length(username) > MAX_ACCOUNT_STR) return AOR_NAME_TOO_LONG; // username's too long normalizeString(username); normalizeString(password); normalizeString(email); if (GetId(username)) return AOR_NAME_ALREADY_EXIST; // username does already exist PreparedStatement* stmt = LoginDatabase.GetPreparedStatement(LOGIN_INS_ACCOUNT); stmt->setString(0, username); stmt->setString(1, CalculateShaPassHash(username, password)); stmt->setString(2, email); stmt->setString(3, email); LoginDatabase.DirectExecute(stmt); // Enforce saving, otherwise AddGroup can fail stmt = LoginDatabase.GetPreparedStatement(LOGIN_INS_REALM_CHARACTERS_INIT); LoginDatabase.Execute(stmt); return AOR_OK; // everything's fine}
开发者ID:redlaine,项目名称:TrinityCore,代码行数:26,
示例14: ChangePasswordAccountOpResult AccountMgr::ChangePassword(uint32 accountId, std::string newPassword){ std::string username; if (!GetName(accountId, username)) return AOR_NAME_NOT_EXIST; // account doesn't exist if (utf8length(newPassword) > MAX_ACCOUNT_STR) return AOR_PASS_TOO_LONG; normalizeString(username); normalizeString(newPassword); PreparedStatement* stmt = LoginDatabase.GetPreparedStatement(LOGIN_UPD_PASSWORD); stmt->setString(0, CalculateShaPassHash(username, newPassword)); stmt->setUInt32(1, accountId); LoginDatabase.Execute(stmt); stmt = LoginDatabase.GetPreparedStatement(LOGIN_UPD_VS); stmt->setString(0, ""); stmt->setString(1, ""); stmt->setString(2, username); LoginDatabase.Execute(stmt); return AOR_OK;}
开发者ID:kulebron,项目名称:TrinityCore,代码行数:30,
示例15: normalizeNfcvoid NormalizeUtf8::normalize(std::string& str, Constraints& c) const { normalizeNfc(str, c); if (constraintsIndexUnicodes(c) && FixUnicode::removeControlChars) SDL_THROW_LOG(NormalizeUtf8, ConfigException, "remove-control-characters can't be true when using constraints (yet)"); FixUnicode::normalize(str, true); SDL_TRACE(NormalizeUtf8, "windows-1252-replaced: '" << str << "' #bytes=" << str.size() << " #unicode=" << utf8length(str));}
开发者ID:anibalanto,项目名称:hyp,代码行数:9,
示例16: utf8length uint32_t ABCFile::addString(Str* s) { if (s->ident == ~0U) { s->ident = stringCount++; uint32_t len = utf8length(s); stringBuf.emitU30(len); stringBuf.emitUtf8(len, s); } return s->ident; }
开发者ID:changm,项目名称:tessa,代码行数:10,
示例17: FNI_GetStringUTFLength/* Returns the UTF-8 length in bytes of a string. */jsize FNI_GetStringUTFLength(JNIEnv *env, jstring string) { jclass strcls = (*env)->FindClass(env, "java/lang/String"); jmethodID mid = (*env)->GetMethodID(env, strcls, "toCharArray", "()[C"); jcharArray ca = (jcharArray) (*env)->CallObjectMethod(env, string, mid); jsize len = (*env)->GetArrayLength(env, ca); jchar *buf = (*env)->GetCharArrayElements(env, ca, NULL); jsize result = utf8length(buf, len); (*env)->ReleaseCharArrayElements(env, ca, buf, 0); (*env)->DeleteLocalRef(env, strcls); (*env)->DeleteLocalRef(env, ca); return result;}
开发者ID:fenghaitao,项目名称:Harpoon,代码行数:14,
示例18: CreateAccountAccountOpResult AccountMgr::CreateAccount(std::string username, std::string password, std::string email /*= ""*/, uint32 bnetAccountId /*= 0*/, uint8 bnetIndex /*= 0*/){ if (utf8length(username) > MAX_ACCOUNT_STR) return AccountOpResult::AOR_NAME_TOO_LONG; // username's too long if (utf8length(password) > MAX_PASS_STR) return AccountOpResult::AOR_PASS_TOO_LONG; // password's too long Utf8ToUpperOnlyLatin(username); Utf8ToUpperOnlyLatin(password); Utf8ToUpperOnlyLatin(email); if (GetId(username)) return AccountOpResult::AOR_NAME_ALREADY_EXIST; // username does already exist PreparedStatement* stmt = LoginDatabase.GetPreparedStatement(LOGIN_INS_ACCOUNT); stmt->setString(0, username); stmt->setString(1, CalculateShaPassHash(username, password)); stmt->setString(2, email); stmt->setString(3, email); if (bnetAccountId && bnetIndex) { stmt->setUInt32(4, bnetAccountId); stmt->setUInt8(5, bnetIndex); } else { stmt->setNull(4); stmt->setNull(5); } LoginDatabase.DirectExecute(stmt); // Enforce saving, otherwise AddGroup can fail stmt = LoginDatabase.GetPreparedStatement(LOGIN_INS_REALM_CHARACTERS_INIT); LoginDatabase.Execute(stmt); return AccountOpResult::AOR_OK; // everything's fine}
开发者ID:Regigicas,项目名称:TrinityCore,代码行数:39,
示例19: ChangeUsernameAccountOpResult AccountMgr::ChangeUsername(uint32 accid, std::string new_uname, std::string new_passwd){ QueryResult_AutoPtr result = LoginDatabase.PQuery("SELECT 1 FROM account WHERE id='%d'", accid); if (!result) return AOR_NAME_NOT_EXIST; // account doesn't exist if (utf8length(new_uname) > MAX_ACCOUNT_STR) return AOR_NAME_TOO_LONG; if (utf8length(new_passwd) > MAX_ACCOUNT_STR) return AOR_PASS_TOO_LONG; normalizeString(new_uname); normalizeString(new_passwd); LoginDatabase.EscapeString(new_uname); LoginDatabase.EscapeString(new_passwd); if (!LoginDatabase.PExecute("UPDATE account SET username='%s', sha_pass_hash=Sha1(CONCAT('%s', ':', '%s')) WHERE id='%d'", new_uname.c_str(), new_uname.c_str(), new_passwd.c_str(), accid)) return AOR_DB_INTERNAL_ERROR; // unexpected error return AOR_OK;}
开发者ID:Bootz,项目名称:SF1,代码行数:23,
示例20: CreateAccountAccountOpResult CreateAccount(std::string username, std::string password){ if (utf8length(username) > MAX_ACCOUNT_STR) return AOR_NAME_TOO_LONG; // username's too long normalizeString(username); normalizeString(password); if (GetId(username)) return AOR_NAME_ALREDY_EXIST; // username does already exist LoginDatabase.PExecute("INSERT INTO account(username, sha_pass_hash, joindate) VALUES('%s', '%s', NOW())", username.c_str(), CalculateShaPassHash(username, password).c_str()); LoginDatabase.Execute("INSERT INTO realmcharacters (realmid, acctid, numchars) SELECT realmlist.id, account.id, 0 FROM realmlist, account LEFT JOIN realmcharacters ON acctid=account.id WHERE acctid IS NULL"); return AOR_OK; // everything's fine}
开发者ID:IonysTerra,项目名称:ArkCORE,代码行数:16,
示例21: ChangePasswordAccountOpResult AccountMgr::ChangePassword(uint32 accountId, std::string newPassword){ std::string username; if (!GetName(accountId, username)) return AOR_NAME_NOT_EXIST; // account doesn't exist if (utf8length(newPassword) > MAX_ACCOUNT_STR) return AOR_PASS_TOO_LONG; normalizeString(username); normalizeString(newPassword); // also reset s and v to force update at next realmd login LoginDatabase.PExecute("UPDATE account SET v = '0', s = '0', sha_pass_hash = '%s' WHERE id = '%d'", CalculateShaPassHash(username, newPassword).c_str(), accountId); return AOR_OK;}
开发者ID:H4D3S,项目名称:DarkmoonCore-Cataclysm,代码行数:18,
示例22: Utf8ToUpperOnlyLatinAccountOpResult Battlenet::AccountMgr::ChangePassword(uint32 accountId, std::string newPassword){ std::string username; if (!GetName(accountId, username)) return AccountOpResult::AOR_NAME_NOT_EXIST; // account doesn't exist Utf8ToUpperOnlyLatin(username); Utf8ToUpperOnlyLatin(newPassword); if (utf8length(newPassword) > MAX_PASS_STR) return AccountOpResult::AOR_PASS_TOO_LONG; PreparedStatement* stmt = LoginDatabase.GetPreparedStatement(LOGIN_UPD_BNET_PASSWORD); stmt->setString(0, CalculateShaPassHash(username, newPassword)); stmt->setUInt32(1, accountId); LoginDatabase.Execute(stmt); return AccountOpResult::AOR_OK;}
开发者ID:Jildor,项目名称:TrinityCore,代码行数:18,
示例23: ChangePasswordAccountOpResult AccountMgr::ChangePassword(uint32 accid, std::string new_passwd){ QueryResult *result = loginDatabase.PQuery("SELECT 1 FROM account WHERE id='%d'", accid); if(!result) return AOR_NAME_NOT_EXIST; // account doesn't exist delete result; if (utf8length(new_passwd) > MAX_ACCOUNT_STR) return AOR_PASS_TOO_LONG; normilizeString(new_passwd); loginDatabase.escape_string(new_passwd); if(!loginDatabase.PExecute("UPDATE account SET sha_pass_hash=SHA1(CONCAT(username,':','%s')) WHERE id='%d'", new_passwd.c_str(), accid)) return AOR_DB_INTERNAL_ERROR; // unexpected error return AOR_OK;}
开发者ID:Arto,项目名称:mangos,代码行数:18,
示例24: FNI_GetStringUTFChars/* Returns a pointer to an array of UTF-8 characters of the string, or * NULL if the operation fails. The returned array is valid until it is * released by ReleaseStringUTFChars(). * * If isCopy is not NULL, then *isCopy is set to JNI_TRUE if a copy is made; * or it is set to JNI_FALSE if no copy is made. */const char* FNI_GetStringUTFChars(JNIEnv *env, jstring string, jboolean *isCopy) { jclass strcls = (*env)->FindClass(env, "java/lang/String"); jmethodID mid = (*env)->GetMethodID(env, strcls, "toCharArray", "()[C"); jcharArray ca = (jcharArray) (*env)->CallObjectMethod(env, string, mid); jchar * buf = (*env)->GetCharArrayElements(env, ca, NULL); jsize len = (*env)->GetArrayLength(env, ca); jsize newlen = utf8length(buf, len); /* safe to use malloc -- no pointers to gc objects inside char[] */ char * result = malloc(sizeof(char)*(newlen+1)); toUTF8(buf, len, result); result[newlen]='/0'; (*env)->ReleaseCharArrayElements(env, ca, buf, 0); if (isCopy!=NULL) *isCopy=JNI_TRUE; (*env)->DeleteLocalRef(env, strcls); (*env)->DeleteLocalRef(env, ca); return result;}
开发者ID:fenghaitao,项目名称:Harpoon,代码行数:25,
示例25: ChangePasswordAccountOpResult AccountMgr::ChangePassword(uint32 accid, std::string new_passwd){ QueryResult_AutoPtr result = LoginDatabase.PQuery("SELECT 1 FROM account WHERE id='%d'", accid); if (!result) return AOR_NAME_NOT_EXIST; // account doesn't exist if (utf8length(new_passwd) > MAX_ACCOUNT_STR) return AOR_PASS_TOO_LONG; normalizeString(new_passwd); LoginDatabase.EscapeString(new_passwd); // also reset s and v to force update at next realmd login if (!LoginDatabase.PExecute("UPDATE account SET v='0', s='0', sha_pass_hash=Sha1("_CONCAT3_("username", "':'", "'%s'")") WHERE id='%d'", new_passwd.c_str(), accid)) return AOR_DB_INTERNAL_ERROR; // unexpected error return AOR_OK;}
开发者ID:Bootz,项目名称:SF1,代码行数:18,
示例26: ChangePasswordAccountOpResult AccountMgr::ChangePassword(uint32 accid, std::string new_passwd){ std::string username; if (!GetName(accid, username)) { return AOR_NAME_NOT_EXIST; } // account doesn't exist if (utf8length(new_passwd) > MAX_ACCOUNT_STR) { return AOR_PASS_TOO_LONG; } normalizeString(new_passwd); // also reset s and v to force update at next realmd login if (!LoginDatabase.PExecute("UPDATE account SET v='0', s='0', sha_pass_hash='%s' WHERE id='%u'", CalculateShaPassHash(username, new_passwd).c_str(), accid)) { return AOR_DB_INTERNAL_ERROR; } // unexpected error return AOR_OK;}
开发者ID:lucasdnd,项目名称:mangoszero-bots-test,代码行数:19,
示例27: CreateAccountAccountOpResult AccountMgr::CreateAccount(std::string username, std::string password, uint32 expansion) const{ if (utf8length(username) > MAX_ACCOUNT_STR) return AOR_NAME_TOO_LONG; // username's too long normalizeString(username); normalizeString(password); if (GetId(username)) { return AOR_NAME_ALREADY_EXIST; // username does already exist } if (!LoginDatabase.PExecute("INSERT INTO account(username,sha_pass_hash,joindate,expansion) VALUES('%s','%s',NOW(),'%u')", username.c_str(), CalculateShaPassHash(username, password).c_str(), expansion)) return AOR_DB_INTERNAL_ERROR; // unexpected error LoginDatabase.Execute("INSERT INTO realmcharacters (realmid, acctid, numchars) SELECT realmlist.id, account.id, 0 FROM realmlist,account LEFT JOIN realmcharacters ON acctid=account.id WHERE acctid IS NULL"); return AOR_OK; // everything's fine}
开发者ID:cmangos,项目名称:mangos-tbc,代码行数:19,
示例28: CreateAccountAccountOpResult AccountMgr::CreateAccount(std::string username, std::string password){ if (utf8length(username) > MAX_ACCOUNT_STR) return AOR_NAME_TOO_LONG; // username's too long normalizeString(username); normalizeString(password); LoginDatabase.EscapeString(username); LoginDatabase.EscapeString(password); QueryResult_AutoPtr result = LoginDatabase.PQuery("SELECT 1 FROM account WHERE username = '%s'", username.c_str()); if (result) return AOR_NAME_ALREDY_EXIST; // username does already exist if (!LoginDatabase.PExecute("INSERT INTO account(username, sha_pass_hash, joindate) VALUES('%s', Sha1(CONCAT('%s', ':', '%s')), NOW())", username.c_str(), username.c_str(), password.c_str())) return AOR_DB_INTERNAL_ERROR; // unexpected error LoginDatabase.Execute("INSERT INTO realmcharacters (realmid, acctid, numchars) SELECT realmlist.id, account.id, 0 FROM realmlist, account LEFT JOIN realmcharacters ON acctid=account.id WHERE acctid IS NULL"); return AOR_OK; // everything's fine}
开发者ID:Bootz,项目名称:SF1,代码行数:21,
示例29: ChangePasswordAccountOpResult AccountMgr::ChangePassword(uint32 accountId, std::string newPassword){ std::string username; if (!GetName(accountId, username)) { sScriptMgr->OnFailedPasswordChange(accountId); return AccountOpResult::AOR_NAME_NOT_EXIST; // account doesn't exist } if (utf8length(newPassword) > MAX_ACCOUNT_STR) { sScriptMgr->OnFailedPasswordChange(accountId); return AccountOpResult::AOR_PASS_TOO_LONG; } Utf8ToUpperOnlyLatin(username); Utf8ToUpperOnlyLatin(newPassword); PreparedStatement* stmt = LoginDatabase.GetPreparedStatement(LOGIN_UPD_PASSWORD); stmt->setString(0, CalculateShaPassHash(username, newPassword)); stmt->setUInt32(1, accountId); LoginDatabase.Execute(stmt); stmt = LoginDatabase.GetPreparedStatement(LOGIN_UPD_VS); stmt->setString(0, ""); stmt->setString(1, ""); stmt->setString(2, username); LoginDatabase.Execute(stmt); sScriptMgr->OnPasswordChange(accountId); return AccountOpResult::AOR_OK;}
开发者ID:Clementon,项目名称:ElunaTrinityCata,代码行数:37,
示例30: CreateAccountAccountOpResult AccountMgr::CreateAccount(std::string username, std::string password){ if(utf8length(username) > MAX_ACCOUNT_STR) return AOR_NAME_TOO_LONG; // username's too long normilizeString(username); normilizeString(password); loginDatabase.escape_string(username); loginDatabase.escape_string(password); QueryResult *result = loginDatabase.PQuery("SELECT 1 FROM account WHERE username = '%s'", username.c_str()); if(result) { delete result; return AOR_NAME_ALREDY_EXIST; // username does already exist } if(!loginDatabase.PExecute("INSERT INTO account(username,sha_pass_hash,joindate) VALUES('%s',SHA1(CONCAT('%s',':','%s')),NOW())", username.c_str(), username.c_str(), password.c_str())) return AOR_DB_INTERNAL_ERROR; // unexpected error loginDatabase.Execute("INSERT INTO realmcharacters (realmid, acctid, numchars) SELECT realmlist.id, account.id, 0 FROM account, realmlist WHERE account.id NOT IN (SELECT acctid FROM realmcharacters)"); return AOR_OK; // everything's fine}
开发者ID:Artea,项目名称:mangos-svn,代码行数:24,
注:本文中的utf8length函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 C++ utf8str_to_wstring函数代码示例 C++ utf8len函数代码示例 |