【手游项目4】过滤特殊字符,游戏账号名,玩家游戏名,数据库特殊字符检测
//过滤特殊字符会导致数据库存储失败 空格、制表符、回车符、换行符组成的字符串
inline bool CheckNameVaild( const char* pStrName )
{
int nLen = strlen(pStrName);
if(nLen < 1)
return false;
for (int i=0; i < nLen; i++)
{
char c = pStrName[i];
switch (c)
{
case '\'':
case ';':
case '(':
case ')':
case '\\':
case '/':
case ' ':
case '\t':
case '\r':
case '\n':
return false;
break;
}
}
return true;
}
//检查特殊字符 敏感字 长度限制
if (!CheckNameVaild(pMsg.nick_name().c_str())|| pMsg.nick_name().length() >= GAMENAME_LEN_32
/*|| isContainSensitiveName(pMsg.nick_name().c_str()*/)
{
Lobby::PB_S2C_ModifyNickNameRes msg;
msg.set_error(GAME_MSG_ERROR_FAIL);
tagNetMsg scriptNetMsg;
msg.SerializeToArray(scriptNetMsg.buff, msg.ByteSize());
m_lpLobbyServer->SendPbMsgToClient(pPlayerNode, MODIFY_NICKNAME_REQ, &scriptNetMsg, msg.ByteSize());
return;
}