rubensk Postado Janeiro 28, 2013 Compartilhar Postado Janeiro 28, 2013 Pessoal, Como vocês tem lidado com acentuação nos dados de clientes como nome, endereço etc. ? Tem armazenado em ISO 8859-1 ? Tem armazenado em UTF-8 ? Se sim, pq ? Tem filtro para acentuação HTML (´) ? Link para o comentário Compartilhar em outros sites More sharing options...
edvan Postado Janeiro 28, 2013 Compartilhar Postado Janeiro 28, 2013 Pessoal, Como vocês tem lidado com acentuação nos dados de clientes como nome, endereço etc. ? Tem armazenado em ISO 8859-1 ? Tem armazenado em UTF-8 ? Se sim, pq ? Tem filtro para acentuação HTML (´) ? A acentuação é baseado no charset que o cliente define após instalação. A instalação padrão é utf-8 e o próprio WHMCS que irá fazer o armazenamento de acordo com o charset x codificação na base de dados. O cliente em si não se preocupa com isso... os programadores que terão que "se virar nos 30" para codificar/decodificar caso seja necessário fornecer esses dados para uma outra interface. Existe uma variável global no WHMCS que armazena o charset do sistema. $CONFIG['Charset']; Caso essa variável não seja retornada faça uma consulta em MySQL SELECT * FROM tblconfiguration WHERE setting='Charset'; Dependendo do charset, exemplo UTF-8 para ISO-8859-1 utilizando o utf8_encode você resolve isso rapidinho! Link para o comentário Compartilhar em outros sites More sharing options...
rubensk Postado Janeiro 28, 2013 Autor Compartilhar Postado Janeiro 28, 2013 Entendi. Não há risco de um campo entrado por cliente vir com HTMLs tipo ´ ? Link para o comentário Compartilhar em outros sites More sharing options...
edvan Postado Janeiro 28, 2013 Compartilhar Postado Janeiro 28, 2013 Entendi. Não há risco de um campo entrado por cliente vir com HTMLs tipo ´ ? Remota mas existe! Exemplo se o "doido" do cliente resolver preencher em html kkk Exemplo (cliente) http://clip2net.com/s/2Lwhh | http://clip2net.com/s/2Lwju (admin) Link para o comentário Compartilhar em outros sites More sharing options...
rubensk Postado Janeiro 29, 2013 Autor Compartilhar Postado Janeiro 29, 2013 Coloquei filtragem de HTML por via das dúvidas. Ficou assim:<pre class="_prettyXprint _lang-auto _linenums:0"> function _registrobr_normaliza($string) { $string = str_replace('&nbsp;',' ',$string); $string = trim($string); $string = html_entity_decode($string,ENT_QUOTES,'UTF-8'); //Instead of The Normalizer class ... requires (PHP 5 >= 5.3.0, PECL intl >= 1.0.0) $normalized_chars = array( 'Š'=>'S', 'š'=>'s', 'Ð'=>'Dj','Ž'=>'Z', 'ž'=>'z', 'À'=>'A', 'Á'=>'A', 'Â'=>'A', 'Ã'=>'A', 'Ä'=>'A', 'Å'=>'A', 'Æ'=>'A', 'Ç'=>'C', 'È'=>'E', 'É'=>'E', 'Ê'=>'E', 'Ë'=>'E', 'Ì'=>'I', 'Í'=>'I', 'Î'=>'I', 'Ï'=>'I', 'Ñ'=>'N', 'Ò'=>'O', 'Ó'=>'O', 'Ô'=>'O', 'Õ'=>'O', 'Ö'=>'O', 'Ø'=>'O', 'Ù'=>'U', 'Ú'=>'U', 'Û'=>'U', 'Ü'=>'U', 'Ý'=>'Y', 'Þ'=>'B', 'ß'=>'Ss','à'=>'a', 'á'=>'a', 'â'=>'a', 'ã'=>'a', 'ä'=>'a', 'å'=>'a', 'æ'=>'a', 'ç'=>'c', 'è'=>'e', 'é'=>'e', 'ê'=>'e', 'ë'=>'e', 'ì'=>'i', 'í'=>'i', 'î'=>'i', 'ï'=>'i', 'ð'=>'o', 'ñ'=>'n', 'ò'=>'o', 'ó'=>'o', 'ô'=>'o', 'õ'=>'o', 'ö'=>'o', 'ø'=>'o', 'ù'=>'u', 'ú'=>'u', 'û'=>'u', 'ý'=>'y', 'ý'=>'y', 'þ'=>'b', 'ÿ'=>'y', 'ƒ'=>'f', ' ' => ''); $string = strtr($string,$normalized_chars); $string = strtolower($string); return $string; } function _registrobr_StateProvince($sp) { if (strlen($sp)==2) return $sp; $estado = _normaliza($sp); $map = array( "acre" => "AC", "alagoas" => "AL", "amazonas" => "AM", "amapa" => "AP", "bahia" => "BA", "baia" => "BA", "ceara" => "CE", "distritofederal" => "DF", "espiritosanto" => "ES", "espiritusanto" => "ES", "goias" => "GO", "goia" => "GO", "maranhao" => "MA", "matogrosso" => "MT", "matogroso" => "MT", "matogrossodosul" => "MS", "matogrossosul" => "MS", "matogrossodesul" => "MS", "minasgerais" => "MG", "minasgeral" => "MG", "para" => "PA", "paraiba" => "PB", "parana" => "PR", "pernambuco" => "PE", "pernanbuco" => "PE", "piaui" => "PI", "riodejaneiro" => "RJ", "riograndedonorte" => "RN", "riograndenorte" => "RN", "rondonia" => "RO", "riograndedosul" => "RS", "riograndedesul" => "RS", "riograndesul" => "RS", "roraima" => "RR", "santacatarina" => "SC", "sergipe" => "SE", "saopaulo" => "SP", "tocantins" => "TO" ); if(!empty($map[$estado])){ return $map[$estado]; } else { return $sp; } } </pre> Link para o comentário Compartilhar em outros sites More sharing options...
rubensk Postado Fevereiro 4, 2013 Autor Compartilhar Postado Fevereiro 4, 2013 Pessoal, continuando sobre o tema acentuação, vocês já notaram se os dados com acentuação são passados para módulos (pagamento, registro de domínios) ? Estamos com essa impressão ainda não confirmada de que isso é podado... será alguma opção ? Link para o comentário Compartilhar em outros sites More sharing options...
edvan Postado Fevereiro 4, 2013 Compartilhar Postado Fevereiro 4, 2013 Pessoal, continuando sobre o tema acentuação, vocês já notaram se os dados com acentuação são passados para módulos (pagamento, registro de domínios) ? Estamos com essa impressão ainda não confirmada de que isso é podado... será alguma opção ? Módulos de pagamentos a maioria trabalha em UTF-8. A ResellerClub antigamente tinha restrições com acentuação ( lógica simples, inglês não tem acentuação ). As últimas renovações e registros que fiz não tive problemas ( mesmo enviando caracteres ) veja mais http://docs.whmcs.com/ResellerClub#An_unknown_fault_occured_-_please_contact_support Link para o comentário Compartilhar em outros sites More sharing options...
rubensk Postado Fevereiro 4, 2013 Autor Compartilhar Postado Fevereiro 4, 2013 Módulos de pagamentos a maioria trabalha em UTF-8. A ResellerClub antigamente tinha restrições com acentuação ( lógica simples, inglês não tem acentuação ). As últimas renovações e registros que fiz não tive problemas ( mesmo enviando caracteres ) veja mais http://docs.whmcs.com/ResellerClub#An_unknown_fault_occured_-_please_contact_support A API do Registro.br aceitua acentuação, apesar de apenas em ISO 8859-1 e é justamente nisso que estamos trabalhando para converter os dados vindos com o Charset que estiver em uso no WHMCS. O que notamos é que o parâmetro que usavamos vinha sempre em ASCII, mas achamos um onde vem acentuado no Charset do sistema. Link para o comentário Compartilhar em outros sites More sharing options...
edvan Postado Fevereiro 4, 2013 Compartilhar Postado Fevereiro 4, 2013 A API do Registro.br aceitua acentuação, apesar de apenas em ISO 8859-1 e é justamente nisso que estamos trabalhando para converter os dados vindos com o Charset que estiver em uso no WHMCS. O que notamos é que o parâmetro que usavamos vinha sempre em ASCII, mas achamos um onde vem acentuado no Charset do sistema. Isso é simples de resolver... em um outro post até citei a solução. Detectar o charset do cliente e converter se necessário! Link para o comentário Compartilhar em outros sites More sharing options...
rubensk Postado Fevereiro 4, 2013 Autor Compartilhar Postado Fevereiro 4, 2013 Isso é simples de resolver... em um outro post até citei a solução. Detectar o charset do cliente e converter se necessário! Essa parte já estava no código. O problema é que algumas variáveis são auto-convertidas pelo WHMCS para ASCII, possivelmente por problemas como o da ResellClub. Link para o comentário Compartilhar em outros sites More sharing options...
Posts Recomendados