【手游项目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;
	}

 

posted @ 2020-07-08 23:53  byfei  阅读(147)  评论(0编辑  收藏  举报