Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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.
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?
Você esta tendo problemas com buscas em sua aplicação, para ter a necessidade de remover os acentos?
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.
alguém me ajuda por favor!!!
no php, utilize
mb_strtoupper()
hinom eu coloquei assim (UPPER(mb_strtoupper('$nome'))), esta certo? pois não aconteceu nada, nenhum campo foi adicionado no banco.
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..
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')";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
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.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
povo caindo de para-quedas sem ler direito....
@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');
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
jesus!!!!!!!!
jesus!!!!!!!!
kkkkkkkkkkkkkkkkkkkkkk ne, o que foi postado ai em cima, ja deu para resolver o problema, só que a galera ñ ler :p
@ 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
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.
A maioria aqui não liga para crédito, mas é como hinom disse, se os que postaram códigos tivessem lido, não teriam colocados sugestões irrelevantes e já teriam parado de responder no post #12, me parece que você também não leu os posts acima!!! :coolio:
paulinhosupriano ??
quem é você ? de onde veio ? o quê come? onde vive ?
>
paulinhosupriano ??
quem é você ? de onde veio ? o quê come? onde vive ?
rs
>
paulinhosupriano ??
quem é você ? de onde veio ? o quê come? onde vive ?
/applications/core/interface/imageproxy/imageproxy.php?img=http://fotos.imagensporfavor.com/img/pics/glitters/s/smiley_risada-3330.gif&key=508121a9e9f253011393b7fe30681bb95c78f7724df9334ff09551f4239412d1" alt="smiley_risada-3330.gif" />
Fala pessoal,
desculpa a demora da resposta,
hinom fiz como você explicou, mas continua indo para o banco com acento, antes do insert eu coloquei assim:
$nome=$_POST['nome'];
$nome=mb_strtoupper($nome);
e na parte do insert eu coloquei assim:
... VALUES ('$cpf', '$nome', '$endereco'...
alguém sabe dizer se eu fiz certo ou não? e como se faz para tirar o acento antes de ir para o banco?
Cara usa a função do post #3, mb_strtoupper() é apenas pra deixar em maiúsculo.
Olá amigo, use str replace, ou então pesquise funções para remover caracteres especiais.