none
Como evitar a digitação de caracteres acentuados num ASPNET WEB SITE RRS feed

  • Pergunta

  • Olá pessoal

    estou com o seguinte campo no source .aspx

     <asp:TextBox CssClass="TEXTBOX" ID="txtOutrosMeios" runat="server" Width="215px" BackColor="#C8C8C8">
                        </asp:TextBox>

    e sem querer qdo um usuario digitou ele digitou - Mecanismo de Busca - Cadê

    só que na base de dados usando o MySqlConnector me retornou

    Mecanismos de Busca - Cad&#234

    o que me ocasionou um erro

    A duvida é como ou no code-behind estou usando csharp asp.net website no VisualStudio 2008 pro edition posso converter o caractere acentuado para não acentuado ou seria melhor usar regular expression validator no source e se sim quais caracteres eu tenho que colocar no regular expression validator para evitar que a pessoa digite no campo caracteres acentuados

    Fico no aguardo e desde já agradeço


                       

    </asp:TextBox>


    LADEF

    terça-feira, 30 de outubro de 2012 19:33

Todas as Respostas

  • Pelo o que eu entendi você esta tendo um problema com encode, ou seja, quando o usuário digita no campo TextBox uma palavra contendo um acento no seu view source que é gerado após a renderização do html vem com caracteres inválidos, certo?

    Para isso será necessário você utilizar UTF-8 como encode na página e quando for realizar um get nesse campo você deve utilizar o método Server.HtmlEncode('SeuValor');

    Entendeu?

    Abraços,

    Leandro Rodrigues


    Caso a resposta tenha ajudado, não esqueça de marcar como resposta válida

    quarta-feira, 31 de outubro de 2012 11:15
  • Veja,

    http://stackoverflow.com/questions/500826/how-to-conduct-an-accent-sensitive-search-in-mysql


    Não esqueça de usar o componente </> na barra para posta seu código. Microsoft MCPD,MCTS,MCC

    quarta-feira, 31 de outubro de 2012 11:21
    Moderador
  • Seilor e Leandro vejam como está o code-behind que recebe os dados desta duvida em csharp

      if (txtOutrosMeios.Text != null && txtOutrosMeios.Text != string.Empty) 
                {
                    OutrosMeios = Server.HtmlEncode(txtOutrosMeios.Text);
                    ///Response.Write("<br/>" + txtOutrosMeios.Text);
                    ///
                    //Fáz o Replace p/ Evitar SQLInjection
                    OutrosMeios = OutrosMeios.Replace("'", " ");
                    OutrosMeios = OutrosMeios.Replace(";", " ");
                    OutrosMeios = OutrosMeios.Replace("--", " ");
                    OutrosMeios = OutrosMeios.Replace("' or ", " ");
                    OutrosMeios = OutrosMeios.Replace("' OR", " ");
                    OutrosMeios = OutrosMeios.Replace("'1'", " ");
                    OutrosMeios = OutrosMeios.Replace("=", " ");
                    OutrosMeios = OutrosMeios.Replace("' ' or '1' = '1'", " ");
                    OutrosMeios = OutrosMeios.Replace("' ' OR '1' = '1'", " ");
                    OutrosMeios = OutrosMeios.Replace("' or 1=1 --", " ");
                    OutrosMeios = OutrosMeios.Replace("' OR 1=1 --", " ");
                    OutrosMeios = OutrosMeios.Replace("‘’", " ");
                    OutrosMeios = OutrosMeios.Replace("drop table", " ");
                    OutrosMeios = OutrosMeios.Replace("Drop Table", " ");
                    OutrosMeios = OutrosMeios.Replace("drop", " ");
                    OutrosMeios = OutrosMeios.Replace("Drop", " ");
                    OutrosMeios = OutrosMeios.Replace("table", " ");
                    OutrosMeios = OutrosMeios.Replace("Table", " ");
                    OutrosMeios = OutrosMeios.Replace("select", " ");
                    OutrosMeios = OutrosMeios.Replace("Select", " ");
                    OutrosMeios = OutrosMeios.Replace("insert", " ");
                    OutrosMeios = OutrosMeios.Replace("Insert", " ");
                    OutrosMeios = OutrosMeios.Replace("update", " ");
                    OutrosMeios = OutrosMeios.Replace("Update", " ");
                    OutrosMeios = OutrosMeios.Replace("delete", " ");
                    OutrosMeios = OutrosMeios.Replace("Delete", " ");
                    OutrosMeios = OutrosMeios.Replace("create", " ");
                    OutrosMeios = OutrosMeios.Replace("create table", " ");
                    OutrosMeios = OutrosMeios.Replace("Create", " ");
                    OutrosMeios = OutrosMeios.Replace("Create Table", " ");
                    OutrosMeios = OutrosMeios.Replace("alter", " ");
                    OutrosMeios = OutrosMeios.Replace("alter table", " ");
                    OutrosMeios = OutrosMeios.Replace("Alter", " ");
                    OutrosMeios = OutrosMeios.Replace("Alter Table", " ");
                    //Atribui o Valor a Variavel UrlSite
                    //OutrosMeios += OutrosMeios;
                   // msgAviso = (OutrosMeios);
    
                    //Método de Base de Dados P/Verificação
                    //Se tal Meio de Busca já existe na Lista
                    //Ou não
                    //Store Procedure 
                    string SP_MySql_Consulta = "OutrosMeios_Consulta";
    
                    //BASE DE DADOS MYSQL COMANDO 
                    MySqlConnection conn = new MySqlConnection(conStr);
                    MySqlCommand cmd = new MySqlCommand(SP_MySql_Consulta);
                    cmd.CommandType = CommandType.StoredProcedure;
    
                    daMySQL = new MySqlDataAdapter();
    
                    dsMySQL = new DataSet();
    
                    daMySQL.SelectCommand = cmd;
    
                    MySqlParameter prm = new MySqlParameter("@p_OutrosMeios", MySqlDbType.VarChar);
                    prm.Direction = ParameterDirection.Input;
                    prm.Value = OutrosMeios;
                    cmd.Parameters.Add(prm);
    
                    cmd.Connection = conn;
    
                    dsMySQL = new DataSet();
                    daMySQL.Fill(dsMySQL, "AchouNossoSite");
    
                    conn.Open();
    
                    QtdLinhas = dsMySQL.Tables[0].Rows.Count;
    
                    if (QtdLinhas > 0)
                    {
                        string vlOutrosMeios;
    
                        vlOutrosMeios = Convert.ToString(dsMySQL.Tables[0].Rows[0]["OutrosMeios"]);
    
                    msgAviso = "Ítem não Cadastrado pois já existe este Ítem na Lista!!!";
                       // Label1.Text = msgAviso;
    
                    }
                    else
                    {
                        //Método de Base de Dados P/Inserção
                        //De dados na table AchouNossoSite
                        //via
                        //Store Procedure 
                        string SP_MySql_Insert = "OutrosMeios_Insert";
    
                        //BASE DE DADOS MYSQL COMANDO 
                        MySqlConnection conninsert = new MySqlConnection(conStr);
                        MySqlCommand cmdinsert = new MySqlCommand(SP_MySql_Insert);
                        cmdinsert.CommandType = CommandType.StoredProcedure;
    
                        //Inicializa Parametros de Inserção
                        
                        MySqlParameter prminsert = new MySqlParameter("@p_OutrosMeios", MySqlDbType.VarChar);
                        prminsert.Direction = ParameterDirection.Input;
                        prminsert.Value = OutrosMeios;
                        cmdinsert.Parameters.Add(prminsert);
    
                        cmdinsert.Connection = conninsert;
    
                        //Abre a Conexão
                        conninsert.Open();
                        //Executa a Procedure de Inserção
                        cmdinsert.ExecuteNonQuery();
                        //Fecha a Conexão
                        conninsert.Close();
                        //Fim do Método de Inserção com Parameters
                        
                        msgAviso = "Cadastro de Outros Meios Efetuado com Sucesso!!!";
                        //Label1.Text = msgAviso;
                        //Response.Write("<br/>Cadastrar " + OutrosMeios);
    
                    }
                    conn.Close();
                        
                        
                        lblMsgAviso.Text = msgAviso;
    
                    //Parei Pagina Anuncie.aspx.cs Aqui em 24/de Março - 02:23
                    //Próximas Tarefas 
                    //Acertar o RegExpress de PergSecr e 
                    //RespSecr e passar o metodo de verificação da 
                    //Pagina MySqlParametersReader.aspx.cs
                    //Para este local com algumas adaptações
                
                
                }

    Aqui os procedures usados

    DELIMITER $$
    
    CREATE DEFINER=`database`@`%` PROCEDURE `OutrosMeios_Consulta`(p_OutrosMeios VARCHAR(150))
    BEGIN
    Select * from AchouNossoSite where OutrosMeios = p_OutrosMeios;
    END

    e

    DELIMITER $$
    
    CREATE DEFINER=`database`@`%` PROCEDURE `OutrosMeios_Insert`(p_OutrosMeios VARCHAR(150))
    BEGIN
        Insert INTO AchouNossoSite (OutrosMeios) Values (p_OutrosMeios);
    END
    

    enfim o que eu teria que alterar nos dois scripts sql ou seria melhor um regular expression tirando os acentos no source aspx do textbox se sim qual seria o regular expression validator para evitar caracteres acentuados se esta for a melhor opcao

    fico no aguardo e desde já agradeço


    LADEF

    quinta-feira, 1 de novembro de 2012 02:37