Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

marcosfg

remover acento para cadastrar no banco

Recommended Posts

Galera, alguém poderia me ajudar?

 

Eu tenho um formulário de cadastro, eu queria que quando o usuário cadastrar com nome que tem acento, antes de ir para o banco fosse tirado automaticamente esse acento, exemplo (José, João) no banco fosse (Jose, Joao) sem acento, alguém sabe como fazer? procurei muito pelos sites, até achei, mais não resolveu, foi cadastrado como acento.

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu já achei várias funções para remover acentos, talvez não deu certo porque eu não soube colocar no local certo, como eu tenho que fazer a declaração da função e como eu faço para chama-la no insert para tirar o acento antes de ir para o banco?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você esta tendo problemas com buscas em sua aplicação, para ter a necessidade de remover os acentos?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu estou usando este comando (UPPER('$nome')) independente do que o usuário digitar vai tudo que com letra maiúscula, só que quando digita com acento esse comando não muda para tudo maiúsculo, aquela letra fica minúscula, exemplo gonçalves daí muda para GONçALVES, para evitar isso eu queria tirar esses caracteres especiais.

Compartilhar este post


Link para o post
Compartilhar em outros sites

UPPER() é um função do MYSQL

 

mb_strtoupper() é do PHP

 

 

mostre o trecho do código.. só a parte relevante onde tem a montagem do query sql..

Compartilhar este post


Link para o post
Compartilhar em outros sites

estou colocando nessa parte;

$sql = "INSERT INTO tblmembros (cpf, nome, endereco, numero, complemento, bairro, cidade, cep, telefone, celular, comercial,
conjuge, pai, mae, civil, casamento, nascimento, filhos, email, rg, profissao, membro, datajurisdicao, vindodaigreja,
cargonaigreja, departamento, nomefilho1, nascimentofilho1, nomefilho2, nascimentofilho2, nomefilho3, nascimentofilho3,
nomefilho4, nascimentofilho4, nomefilho5, nascimentofilho5, nomefilho6, nascimentofilho6) VALUES ('$cpf', (UPPER('$nome')), '$endereco',
'$numero', '$complemento', '$bairro', '$cidade', '$cep', '$telefone', '$celular', '$comercial', '$conjuge', '$pai', '$mae',
'$civil', '$casamento', '$nascimento', '$filhos', '$email', '$rg', '$profissao', '$membro', '$datajurisdicao', '$vindodaigreja',
'$cargonaigreja', '$departamento', '$nomefilho1', '$nascimentofilho1', '$nomefilho2', '$nascimentofilho2', '$nomefilho3',
'$nascimentofilho3', '$nomefilho4', '$nascimentofilho4', '$nomefilho5', '$nascimentofilho5', '$nomefilho6', '$nascimentofilho6')";

Compartilhar este post


Link para o post
Compartilhar em outros sites

nesse trecho

 

(UPPER('$nome')), '$endereco',

 

troque por

 

'$nome', '$endereco',

 

 

Antes de

 

$sql = "INSERT IN..

 

Coloque assim

 

$nome = mb_strtoupper($nome);

 

 

blezinha?

 

daí mostre o code como ficou pra ver se vc entendeu mesmo

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara achei na primeira pagina do google

 

function retira_acentos($texto) 
{ 
$array1 = array( "á", "à", "â", "ã", "ä", "é", "è", "ê", "ë", "í", "ì", "î", "ï", "ó", "ò", "ô", "õ", "ö", "ú", "ù", "û", "ü", "ç" 
, "Á", "À", "Â", "Ã", "Ä", "É", "È", "Ê", "Ë", "Í", "Ì", "Î", "Ï", "Ó", "Ò", "Ô", "Õ", "Ö", "Ú", "Ù", "Û", "Ü", "Ç" ); 
$array2 = array( "a", "a", "a", "a", "a", "e", "e", "e", "e", "i", "i", "i", "i", "o", "o", "o", "o", "o", "u", "u", "u", "u", "c" 
, "A", "A", "A", "A", "A", "E", "E", "E", "E", "I", "I", "I", "I", "O", "O", "O", "O", "O", "U", "U", "U", "U", "C" ); 
return str_replace( $array1, $array2, $texto); 
} 
$texto = retira_acentos('João');
echo $texto//retorna João

ou seja antedes de da o insert, coloque essa função nos post ex:

 

<?php

   $titulo = retira_acentos($_POST[titulo]);
   $texto  = retira_acentos($_POST[texto]);

   insert into tabela (titulo,texto) values ('$titulo','$texto');

?>

 

desse modo vai retirar os acentos.

 

 

 

e se o problema e por que vai, assim: GONçALVES

 

usando a função mb_strtoupper() desse modo.

 

<?php

   $titulo = mb_strtoupper($_POST[titulo]);
   $texto  = mb_strtoupper($_POST[texto]);

   insert into tabela (titulo,texto) values ('$titulo','$texto');

?>

vai resolver.

Compartilhar este post


Link para o post
Compartilhar em outros sites

usa esse que está funcionando !

 

<?php
function acento($str, $enc = "UTF-8")
{
$acentos = array(
'À'=>'/À/',
'à'=>'/à/',
'Á'=>'/Á/',
'á'=>'/á/',
'Â'=>'/Â/',
'â'=>'/â/',
'Ã'=>'/Ã/',
'ã'=>'/ã/',
'Ä'=>'/Ä/',
'ä'=>'/ä/',
'È'=>'/È/',
'è'=>'/è/',
'É'=>'/É/',
'é'=>'/é/',
'Ê'=>'/Ê/',
'ê'=>'/ê/',
'Ë'=>'/Ë/',
'ë'=>'/ë/',
'Ì'=>'/Ì/',
'ì'=>'/ì/',
'Í'=>'/Í/',
'í'=>'/í/',
'Î'=>'/Î/',
'î'=>'/î/',
'Ï'=>'/Ï/',
'ï'=>'/ï/',
'Ò'=>'/Ò/',
'ò'=>'/ò/',
'Ó'=>'/Ó/',
'ó'=>'/ó/',
'Ô'=>'/Ô/',
'ô'=>'/ô/',
'Õ'=>'/Õ/',
'õ'=>'/õ/',
'Ö'=>'/Ö/',
'ö'=>'/ö/',
'Ù'=>'/Ù/',
'ù'=>'/ù/',
'Ú'=>'/Ú/',
'ú'=>'/ú/',
'Û'=>'/Û/',
'û'=>'/û/',
'Ü'=>'/Ü/',
'ü'=>'/ü/',
'Ý'=>'/Ý/',
'ý'=>'/ý/',
'Ç'=>'/Ç/',
'ç'=>'/ç/',
'Ñ'=>'/Ñ/',
'ñ'=>'/ñ/',
'ª'=>'/ª/',
'º'=>'/°/',
);
return preg_replace($acentos, array_keys($acentos), htmlentities($str,ENT_NOQUOTES, $enc));
}

function acento_js($str)
{
$acentos = array(
'á' => '\u00e1',
'à' => '\u00e0',
'â' => '\u00e2',
'ã' => '\u00e3',
'ä' => '\u00e4',
'Á' => '\u00c1',
'À' => '\u00c0',
'Â' => '\u00c2',
'Ã' => '\u00c3',
'Ä' => '\u00c4',
'é' => '\u00e9',
'è' => '\u00e8',
'ê' => '\u00ea',
'ê' => '\u00ea',
'É' => '\u00c9',
'È' => '\u00c8',
'Ê' => '\u00ca',
'Ë' => '\u00cb',
'í' => '\u00ed',
'ì' => '\u00ec',
'î' => '\u00ee',
'ï' => '\u00ef',
'Í' => '\u00cd',
'Ì' => '\u00cc',
'Î' => '\u00ce',
'Ï' => '\u00cf',
'ó' => '\u00f3',
'ò' => '\u00f2',
'ô' => '\u00f4',
'õ' => '\u00f5',
'ö' => '\u00f6',
'Ó' => '\u00d3',
'Ò' => '\u00d2',
'Ô' => '\u00d4',
'Õ' => '\u00d5',
'Ö' => '\u00d6',
'ú' => '\u00fa',
'ù' => '\u00f9',
'û' => '\u00fb',
'ü' => '\u00fc',
'Ú' => '\u00da',
'Ù' => '\u00d9',
'Û' => '\u00db',
'ç' => '\u00e7',
'Ç' => '\u00c7',
'ñ' => '\u00f1',
'Ñ' => '\u00d1',
'á' => '\u00e1',
'à' => '\u00e0',
'â' => '\u00e2',
'ã' => '\u00e3',
'ä' => '\u00e4',
'Á' => '\u00c1',
'À' => '\u00c0',
'Â' => '\u00c2',
'Ã' => '\u00c3',
'Ä' => '\u00c4',
'é' => '\u00e9',
'è' => '\u00e8',
'ê' => '\u00ea',
'É' => '\u00c9',
'È' => '\u00c8',
'Ê' => '\u00ca',
'Ë' => '\u00cb',
'í' => '\u00ed',
'ì' => '\u00ec',
'Î' => '\u00ee',
'ï' => '\u00ef',
'Í' => '\u00cd',
'Ì' => '\u00cc',
'Î' => '\u00ce',
'Ï' => '\u00cf',
'ó' => '\u00f3',
'ò' => '\u00f2',
'ô' => '\u00f4',
'õ' => '\u00f5',
'ö' => '\u00f6',
'Ó' => '\u00d3',
'Ò' => '\u00d2',
'Ô' => '\u00d4',
'Õ' => '\u00d5',
'Ö' => '\u00d6',
'ú' => '\u00fa',
'ù' => '\u00f9',
'û' => '\u00fb',
'ü' => '\u00fc',
'Ú' => '\u00da',
'Ù' => '\u00d9',
'Û' => '\u00db',
'ç' => '\u00e7',
'Ç' => '\u00c7',
'ñ' => '\u00f1',
'Ñ' => '\u00d1',
);

return strtr( $str, $acentos);
}

function remover($str, $enc = "UTF-8")
{

$remove = array(
'A' => '/À|Á|Â|Ã|Ä|Å/',
'a' => '/à|á|â|ã|ä|å/',
'C' => '/Ç/',
'c' => '/ç/',
'E' => '/È|É|Ê|Ë/',
'e' => '/è|é|ê|ë/',
'I' => '/Ì|Í|Î|Ï/',
'i' => '/ì|í|î|ï/',
'N' => '/Ñ/',
'n' => '/ñ/',
'O' => '/Ò|Ó|Ô|Õ|Ö/',
'o' => '/ò|ó|ô|õ|ö/',
'U' => '/Ù|Ú|Û|Ü/',
'u' => '/ù|ú|û|ü/',
'Y' => '/Ý/',
'y' => '/ý|ÿ/',
'a.' => '/ª/',
'o.' => '/º/');

return strtolower(preg_replace($remove, array_keys($remove), htmlentities($str,ENT_NOQUOTES, $enc)));
}

?>

ex:

acento('joão'); irá retornar joão

remover('joão'); irá retornar joao

e para alert js

 

<script type="text/javascript">
alert("Insira o Sobrenome do Aluno!")
document.location.href= "<?=acento_js( 'joão')?>"
</script>

acento_js('joão'); irá retornar jo\u00e3o

Compartilhar este post


Link para o post
Compartilhar em outros sites

@hinon concordo!

 

O problema dele é só na inserção dos dados, e galera querendo evitar um problema causando outro! :pinch:

 

...só complementando o que está no post #12, se tiver problema com os caracteres acentuados, assim como já tive, mesmo com scripts, banco e etc em UTF-8, basta setar como utf-8.

$nome = mb_strtoupper($nome, 'utf-8');

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá meu amigo,

 

Bom para solucionar seu problema criei fiz um script bem simples e funcional, caso tenha conhecimento em funções em php poderá ajuda-lo e muito neste caso que se trata de informações para banco de dados.

 

Segue o meu código criado....

 

$nome = utf8_decode("jOÃO pAULO sOUSA sUPRIANO");
$encontrar = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜüÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûýýþÿŔŕ';
$modificar = 'aaaaaaaceeeeiiiidnoooooouuuuuybsaaaaaaaceeeeiiiidnoooooouuuyybyRr';
$nome = strtr($nome, utf8_decode($encontrar), $modificar);
$nome = strip_tags(trim($nome));
$nome = strtoupper($nome);
echo $nome;
caso tenha solucionado coloca solucionado e me dar um creditozinho no site :D..
bom para funcionar utilizei o utf8_decode para codificar em utf8 o valor colocado podendo ser uma variavel e não o texto escrito manual.
criei duas váriaveis o encontrar e o modificar usando a função nativa que o PHP nos oferece strtr que codifica a variavel encontrar para ficar igual a digitada acima e caso encontre modifica para a variavel modificar.
obs ambas as variaveis com o mesmo tamanho de caracteres.
depois para garantir usei o strip_tags da uma olhadinha no manual do PHP para entender desta função nativa do PHP.
e no final coloquei a váriavel para ficar todos os caracteres em maiusculos podendo ser modificado para o strtolower deixar todas em minusculo.
e mostrei a variavel.
Att: João Paulo Sousa Supriano

Compartilhar este post


Link para o post
Compartilhar em outros sites

jesus!!!!!!!!

kkkkkkkkkkkkkkkkkkkkkk ne, o que foi postado ai em cima, ja deu para resolver o problema, só que a galera ñ ler :p

Compartilhar este post


Link para o post
Compartilhar em outros sites

@ erison ,

 

Verdade, por isso digo novamente.

 

Caso o post de nossos amigos venha solucionar o seu problema e de mais amigos com o mesmo peço que coloque como resolvido dando creditos a tem resolveu o seu problema.

 

Agradeço a todos os colegas que postam e ajuda a muitos.

 

Qualquer dúvida do mesmo deixe sua mensagem pessoal em meu imasters.

 

Att: João Paulo Sousa Supriano

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.