Ir para conteúdo

POWERED BY:

Arquivado

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

tounoosso

Problema de Acentuação

Recommended Posts

Bom dia pessoal

 

Estou com o seguinte problema... Até eu começar a inserir os dados atraves de um painel de cadastro, os acentos funcionavam perfeitamente (inseria direto no BD) só que agora que o cadastro é feito atraves de um painelzinho simples, os acentos não estão funcionando.

 

Ja tentei mudar o charset e mesmo assim o erro persiste... alguem pode me dar alguma solução?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu estou com esse problemão também em!

 

Já coloquei tudo o que eu poderia imaginar UTF-8, tanto na tabela, quanto no HTML e sem resultados. Única coisa que melhorou mais ou menos foi ter trocado a colação alí por Binary. Não sei se isso é correto mas foi a única coisa que consegui.

 

O problema que vi até agora, foi que no corpo da tabela, pelo Myphp, as vezes o texto que agente coloca é trocado por uma sequencia maluca de números e letras. Mas isso não afeta a página :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vamos lá...

 

Vamos arruma a casa primeiro entao..

  • Primeiro... é imprescindível que vc defina qual charset vc irá usar no seu site.
  • Se vc esta começando, vamos começar do jeito certo, já estruturando seu html na versão HTML5
  • A W3c coloca como padrão para o HTML 5 o UFT-8

Então com essa informação, acesse essa pagina, com um tutorial para dreamwaever

 

Nessa página vc vai ver como mudar o charset de suas páginas já prontas.

 

Dessa maneira, vc não tem dor de cabeça com códigos estranhos no seu html

 

Agora com a casa pronta, ou seja, seu site todo usando um charset único e os textos de suas páginas todos codificados

 

Vc tem que olhar qual Character Sets que sua tabela no mysql esta usando.

 

Eu recomendo vc selecionar uft8_gerenal_ci..

 

Com certeza, mudado tudo isso, ou seja, com seus textos html formatados em UFT_8 e seu banco de dados tb.. tudo estará ok.

 

Detalhe, o ideal é vc comecar com suas tabelas limpas, sem dados, pois caso vc cole os dados anteriores, os mesmos podem vir codificados na charset anterior, o que comprometerá tudo.

 

Caso vc tenha que decodificar tudo para a nova charset utilize o tutorial do dw que eu postei acima, ele faá automaticamente pra vc, depois e so vc postar no bd

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tive que desmarcar como resolvido porque o problema voltou a aparecer.

 

Eu transformei todos os códigos em charset iso-8859-1 e no site esta tudo ótimo, tudo bonito. Só que na página que recebe dados do BD os acentos não estão funcionando

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acredito que o problema está no script que eu peguei pata tirar os caracteres especiais... Se alguem puder dar uma olhada

 

<?php include_once("header.php"); ?>
    <h1>Cadastrar Posts</h1>
<?php
//tirar acentos
function slug($string){
$a = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜüÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûýýþÿŔŕ"!@#$%&*()_-+={[}]/?;:.,\\\'<>';
$b = 'aaaaaaaceeeeiiiidnoooooouuuuuybsaaaaaaaceeeeiiiidnoooooouuuyybyRr                              ';
$string = utf8_decode($string);
$string = strtr($string, utf8_decode($a), $b);
$string = strip_tags(trim($string));
$string = str_replace(" ","-",$string);
return strtolower(utf8_encode($string));
}


function tag($string){
$a = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜüÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûýýþÿŔŕ"!@#$%&*()_-+={[}]/?;:.\\\'<>';
$b = 'aaaaaaaceeeeiiiidnoooooouuuuuybsaaaaaaaceeeeiiiidnoooooouuuyybyRr                             ';
$string = utf8_decode($string);
$string = strtr($string, utf8_decode($a), $b);
$string = strip_tags(trim($string));
return strtolower(utf8_encode($string));
}
?>

<?php if(isset($_POST['executar'])){
$img        = strip_tags(trim($_POST['img']));
$titulo     = strip_tags(trim($_POST['titulo']));
$tituloSlugVerifica = slug($titulo);
$verifica = mysql_query("SELECT * FROM portifolio WHERE tituloSlug = '$tituloSlugVerifica'");
$verificaConta = mysql_num_rows($verifica);
if($verificaConta >= 1){
	$numero = $verificaConta + 1;
	$tituloSlug = $tituloSlugVerifica.'-'.$numero;
}else{
	$tituloSlug = $tituloSlugVerifica;
}
$cat        = strip_tags(trim($_POST['cat']));
$catSlug    = slug($cat);
$tags       = strip_tags(trim($_POST['tags']));
$tagsSlug   = tag($tags);
$texto      = strip_tags(trim($_POST['texto']));
$data       = date('Y-m-d H:i:s');

$cadastra = mysql_query("INSERT INTO portifolio (thumb, titulo, tituloSlug, categoria, catSlug, tags, tagsSlug, texto, data) VALUES ('$img', '$titulo', '$tituloSlug', '$cat', '$catSlug', '$tags', '$tagsSlug', '$texto', '$data')") or die(mysql_error());

if($cadastra >= '1'){
	echo 'Cadastro realizado com sucesso';
}else{
	echo 'Falha ao cadastrar';
}
}
?>


	<div id="post-cad">
    
        <form name="form-cad" action="" enctype="multipart/form-data" method="post">
        	<fieldset>
               <label>
                 <span class="text">Imagem:</span>
                 <input type="text" name="img" size="50" />
               </label>
               
               <label>
                 <span class="text">Titulo:</span>
                 <input type="text" name="titulo" />
               </label>
               
               <label>
                 <span class="text">Categoria:</span>
                   <input type="text" name="cat" />
               </label>
               
               <label>
                 <span class="text">Tags: <small>(separe por virgulas)</small></span>
                 <input type="text" name="tags" />
               </label>
             
               <label>
                 <span class="text">Descrição do Cliente:</span>
                 <textarea name="texto" rows="10"></textarea>
               </label>
               
               <input type="submit" name="executar" value="Cadastrar" class="btn" />
             
             </fieldset>  
        </form>
    </div>

<?php include_once("footer.php"); ?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Siga estas quatro dicas pra ver se resolve.

Usaremos o padrão UTF-8.


- No cabeçalho das páginas use '<meta charset="utf-8">', HTML5.


- Nos arquivos(.html/.php), use codificação em utf-8 sem BOM. Para isso, use o notepad++, vá em 'Formatar' -> 'Converter para UTF-8 (sem BOM)'. Obs: em todos os arquivos html e php, não esqueça do header e footer.


- No banco use 'utf8_general_ci' em 'Default collation'. Para facilitar as alterações, use um gerenciador de banco, por exemplo, HeidiSQL. Obs: No banco e nas tabelas use 'utf8_general_ci'.


- Quando for gravar no banco passe a string pela função utf8_decode(), e quando for recuperar a informação do banco passe pela função utf8_encode() antes de exibir na página. Parece que as funções estão trocada, mas não estão.


Assim vc poderá gravar com os caracteres especiais.

Já tive muita dor de cabeça com essas codificações, mas consegui resolver.



Compartilhar este post


Link para o post
Compartilhar em outros sites

Converti tudo para utf8 SEM BOM e no site ta tudo certo, só que o título da página que fica nas abas de navegação está dando erro... Só resolve quando eu coloco iso-8859-1 e se eu coloco o iso o restante do site buga =/



Esse é o codigo que eu uso para chamar os titulos e as metas do banco de dados... Será que tem algo errado? Da uma ajuda galera, revisei e não encontrei o que pode estar dando o erro dos acentos

 

<?php function get_titulo(){
$url = $_GET['url'];
$urlE = explode('/', $url);
$arquivo = $urlE['0'];
$post    = $urlE['1'];

$paginas = array('empresa', 'servicos', 'contato');

if(isset($post) && $post != ''){
	$sql = mysql_query("SELECT * FROM portifolio WHERE tituloSlug = '$post'");
		while($res = mysql_fetch_array($sql)){
			$titulo = $res['titulo'];
	echo 'InoveStudio - '.$titulo;
	}
	

}elseif(isset($arquivo) && $arquivo == 'empresa'){
	$sql = mysql_query("SELECT * FROM seo_empresa") or die(mysql_error());
		while($res = mysql_fetch_array($sql)){
			$titulo = $res['titulo'];
		echo 'InoveStudio - '.ucfirst($titulo);	
}

}elseif(isset($arquivo) && $arquivo == 'servicos'){
	$sql = mysql_query("SELECT * FROM seo_servicos") or die(mysql_error());
		while($res = mysql_fetch_array($sql)){
			$titulo = $res['titulo'];
		echo 'InoveStudio - '.ucfirst($titulo);	
}
	
}elseif(isset($arquivo) && $arquivo == 'contato'){
	$sql = mysql_query("SELECT * FROM seo_contato") or die(mysql_error());
		while($res = mysql_fetch_array($sql)){
			$titulo = $res['titulo'];
		echo 'InoveStudio - '.ucfirst($titulo);	
}

}elseif(isset($arquivo) && $arquivo == ''){
	$sql = mysql_query("SELECT * FROM seo_home");
		while($res = mysql_fetch_array($sql)){
			$titulo = $res['titulo'];
	echo $titulo;
	}
	
}else{
	$sql = mysql_query("SELECT * FROM titulo_portifolio");
		while($res = mysql_fetch_array($sql)){
			$titulo = $res['titulo'];
	echo 'InoveStudio - '.$titulo;
	}
}
}
?>

<?php function get_metas(){
$url = $_GET['url'];
$urlE = explode('/', $url);
$arquivo = $urlE['0'];
$post    = $urlE['1'];

$paginas = array('empresa', 'servicos', 'contato' );

if(isset($arquivo) && $arquivo == 'arquivos'){
	include "arquivo.php";

}elseif(isset($arquivo) && $arquivo == 'empresa'){
	$sql = mysql_query("SELECT * FROM seo_empresa") or die(mysql_error());
		while($res = mysql_fetch_array($sql)){
			$desc = $res['desc'];
			$tags = $res['tags'];
		echo '<meta name="description" content="'.$desc.'" />';
		echo '<meta name="keywords" content="'.$tags.'" />';
}

}elseif(isset($arquivo) && $arquivo == 'servicos'){
	$sql = mysql_query("SELECT * FROM seo_servicos") or die(mysql_error());
		while($res = mysql_fetch_array($sql)){
			$desc = $res['desc'];
			$tags = $res['tags'];
		echo '<meta name="description" content="'.$desc.'" />';
		echo '<meta name="keywords" content="'.$tags.'" />';
}

}elseif(isset($arquivo) && $arquivo == 'contato'){
	$sql = mysql_query("SELECT * FROM seo_contato") or die(mysql_error());
		while($res = mysql_fetch_array($sql)){
			$desc = $res['desc'];
			$tags = $res['tags'];
		echo '<meta name="description" content="'.$desc.'" />';
		echo '<meta name="keywords" content="'.$tags.'" />';
}

}elseif(isset($arquivo) && $arquivo == ''){
	$sql = mysql_query("SELECT * FROM seo_home") or die (mysql_error());
	
define("TRUNC_BEFORE_LENGHT", 0);
define("TRUNC_AFTER_LENGHT", 1);
function str_truncate($str, $length, $rep=TRUNC_BEFORE_LENGHT)
{
if(strlen($str)<=$length) return $str;
if($rep == TRUNC_BEFORE_LENGHT) $oc = strrpos(substr($str,0,$length),' ');
if($rep == TRUNC_AFTER_LENGHT) $oc = strpos(substr($str,$length),' ') + $length;
return substr($str, 0, $oc);
}	
	
	while($res = mysql_fetch_array($sql)){
		$desc = $res['desc'];
		$tags = $res['tags'];
	echo '<meta name="description" content="'.str_truncate($desc,150,TRUNC_BEFORE_LENGHT).'" />';
	echo '<meta name="keywords" content="'.$tags.'" />';
		}

}elseif(isset($post) && $post != ''){
   $sql = mysql_query("SELECT * FROM portifolio WHERE tituloSlug = '$post'") or die(mysql_error());   
   
	while($res = mysql_fetch_array($sql)){
		$texto = $res['texto'];
		$tags   = $res['tags'];
	echo '<meta name="description" content="'.$texto.'" />';
	echo '<meta name="keywords" content="'.$tags.'" />';
}

}else{
	$sql = mysql_query("SELECT * FROM titulo_portifolio");
		while($res = mysql_fetch_array($sql)){
			$desc = $res['desc'];
			$tags = $res['tags'];
		echo '<meta name="description" content="'.$desc.'" />';
		echo '<meta name="keywords" content="'.$tags.'" />';
	}
}
}
?> 

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Acredito que o problema está no script que eu peguei pata tirar os caracteres especiais... Se alguem puder dar uma olhada

 

<?php include_once("header.php"); ?>
    <h1>Cadastrar Posts</h1>
<?php
//tirar acentos
function slug($string){
$a = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜüÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûýýþÿŔŕ"!@#$%&*()_-+={[}]/?;:.,\\\'<>';
$b = 'aaaaaaaceeeeiiiidnoooooouuuuuybsaaaaaaaceeeeiiiidnoooooouuuyybyRr                              ';
$string = utf8_decode($string);
$string = strtr($string, utf8_decode($a), $b);
$string = strip_tags(trim($string));
$string = str_replace(" ","-",$string);
return strtolower(utf8_encode($string));
}


function tag($string){
$a = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜüÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûýýþÿŔŕ"!@#$%&*()_-+={[}]/?;:.\\\'<>';
$b = 'aaaaaaaceeeeiiiidnoooooouuuuuybsaaaaaaaceeeeiiiidnoooooouuuyybyRr                             ';
$string = utf8_decode($string);
$string = strtr($string, utf8_decode($a), $b);
$string = strip_tags(trim($string));
return strtolower(utf8_encode($string));
}
?>

<?php if(isset($_POST['executar'])){
$img        = strip_tags(trim($_POST['img']));
$titulo     = strip_tags(trim($_POST['titulo']));
$tituloSlugVerifica = slug($titulo);
$verifica = mysql_query("SELECT * FROM portifolio WHERE tituloSlug = '$tituloSlugVerifica'");
$verificaConta = mysql_num_rows($verifica);
if($verificaConta >= 1){
	$numero = $verificaConta + 1;
	$tituloSlug = $tituloSlugVerifica.'-'.$numero;
}else{
	$tituloSlug = $tituloSlugVerifica;
}
$cat        = strip_tags(trim($_POST['cat']));
$catSlug    = slug($cat);
$tags       = strip_tags(trim($_POST['tags']));
$tagsSlug   = tag($tags);
$texto      = strip_tags(trim($_POST['texto']));
$data       = date('Y-m-d H:i:s');

$cadastra = mysql_query("INSERT INTO portifolio (thumb, titulo, tituloSlug, categoria, catSlug, tags, tagsSlug, texto, data) VALUES ('$img', '$titulo', '$tituloSlug', '$cat', '$catSlug', '$tags', '$tagsSlug', '$texto', '$data')") or die(mysql_error());

if($cadastra >= '1'){
	echo 'Cadastro realizado com sucesso';
}else{
	echo 'Falha ao cadastrar';
}
}
?>


	<div id="post-cad">
    
        <form name="form-cad" action="" enctype="multipart/form-data" method="post">
        	<fieldset>
               <label>
                 <span class="text">Imagem:</span>
                 <input type="text" name="img" size="50" />
               </label>
               
               <label>
                 <span class="text">Titulo:</span>
                 <input type="text" name="titulo" />
               </label>
               
               <label>
                 <span class="text">Categoria:</span>
                   <input type="text" name="cat" />
               </label>
               
               <label>
                 <span class="text">Tags: <small>(separe por virgulas)</small></span>
                 <input type="text" name="tags" />
               </label>
             
               <label>
                 <span class="text">Descrição do Cliente:</span>
                 <textarea name="texto" rows="10"></textarea>
               </label>
               
               <input type="submit" name="executar" value="Cadastrar" class="btn" />
             
             </fieldset>  
        </form>
    </div>

<?php include_once("footer.php"); ?>

Rapaz.....

 

Eu acho essas funções tag e slug sua, sem necessidade.

 

VC colocou na tag <form o enctype? Se nao coloca assim: enctype="multipart/form-data"

 

 

    <form name="form" id="form" enctype="multipart/form-data" action="...  

Experimenta inserir os dados no db , mas sem usar as funções tag e slug. deve funcionar.

 

Não ha necessidade de vc codificar os textos para inserir no db não, nem ao contrario para receber.. Conforme eu disse, vc tem q deixar todo mundo falando a mesma lingua, pra evitar retrabalhos.. que é o caso dessas duas funções

 

Elas , se vc tiver um alto trafego, vao atrapalhar o desenpenho de seu site. Imagina toda hora ficar codificando e decodificando texto? Isso é usado em ssl (https das lojas virtuais)

 

 

 

Converti tudo para utf8 SEM BOM e no site ta tudo certo, só que o título da página que fica nas abas de navegação está dando erro... Só resolve quando eu coloco iso-8859-1 e se eu coloco o iso o restante do site buga =/

 

Esse é o codigo que eu uso para chamar os titulos e as metas do banco de dados... Será que tem algo errado? Da uma ajuda galera, revisei e não encontrei o que pode estar dando o erro dos acentos

 

<?php function get_titulo(){
$url = $_GET['url'];
$urlE = explode('/', $url);
$arquivo = $urlE['0'];
$post    = $urlE['1'];

$paginas = array('empresa', 'servicos', 'contato');

if(isset($post) && $post != ''){
	$sql = mysql_query("SELECT * FROM portifolio WHERE tituloSlug = '$post'");
		while($res = mysql_fetch_array($sql)){
			$titulo = $res['titulo'];
	echo 'InoveStudio - '.$titulo;
	}
	

}elseif(isset($arquivo) && $arquivo == 'empresa'){
	$sql = mysql_query("SELECT * FROM seo_empresa") or die(mysql_error());
		while($res = mysql_fetch_array($sql)){
			$titulo = $res['titulo'];
		echo 'InoveStudio - '.ucfirst($titulo);	
}

}elseif(isset($arquivo) && $arquivo == 'servicos'){
	$sql = mysql_query("SELECT * FROM seo_servicos") or die(mysql_error());
		while($res = mysql_fetch_array($sql)){
			$titulo = $res['titulo'];
		echo 'InoveStudio - '.ucfirst($titulo);	
}
	
}elseif(isset($arquivo) && $arquivo == 'contato'){
	$sql = mysql_query("SELECT * FROM seo_contato") or die(mysql_error());
		while($res = mysql_fetch_array($sql)){
			$titulo = $res['titulo'];
		echo 'InoveStudio - '.ucfirst($titulo);	
}

}elseif(isset($arquivo) && $arquivo == ''){
	$sql = mysql_query("SELECT * FROM seo_home");
		while($res = mysql_fetch_array($sql)){
			$titulo = $res['titulo'];
	echo $titulo;
	}
	
}else{
	$sql = mysql_query("SELECT * FROM titulo_portifolio");
		while($res = mysql_fetch_array($sql)){
			$titulo = $res['titulo'];
	echo 'InoveStudio - '.$titulo;
	}
}
}
?>

<?php function get_metas(){
$url = $_GET['url'];
$urlE = explode('/', $url);
$arquivo = $urlE['0'];
$post    = $urlE['1'];

$paginas = array('empresa', 'servicos', 'contato' );

if(isset($arquivo) && $arquivo == 'arquivos'){
	include "arquivo.php";

}elseif(isset($arquivo) && $arquivo == 'empresa'){
	$sql = mysql_query("SELECT * FROM seo_empresa") or die(mysql_error());
		while($res = mysql_fetch_array($sql)){
			$desc = $res['desc'];
			$tags = $res['tags'];
		echo '<meta name="description" content="'.$desc.'" />';
		echo '<meta name="keywords" content="'.$tags.'" />';
}

}elseif(isset($arquivo) && $arquivo == 'servicos'){
	$sql = mysql_query("SELECT * FROM seo_servicos") or die(mysql_error());
		while($res = mysql_fetch_array($sql)){
			$desc = $res['desc'];
			$tags = $res['tags'];
		echo '<meta name="description" content="'.$desc.'" />';
		echo '<meta name="keywords" content="'.$tags.'" />';
}

}elseif(isset($arquivo) && $arquivo == 'contato'){
	$sql = mysql_query("SELECT * FROM seo_contato") or die(mysql_error());
		while($res = mysql_fetch_array($sql)){
			$desc = $res['desc'];
			$tags = $res['tags'];
		echo '<meta name="description" content="'.$desc.'" />';
		echo '<meta name="keywords" content="'.$tags.'" />';
}

}elseif(isset($arquivo) && $arquivo == ''){
	$sql = mysql_query("SELECT * FROM seo_home") or die (mysql_error());
	
define("TRUNC_BEFORE_LENGHT", 0);
define("TRUNC_AFTER_LENGHT", 1);
function str_truncate($str, $length, $rep=TRUNC_BEFORE_LENGHT)
{
if(strlen($str)<=$length) return $str;
if($rep == TRUNC_BEFORE_LENGHT) $oc = strrpos(substr($str,0,$length),' ');
if($rep == TRUNC_AFTER_LENGHT) $oc = strpos(substr($str,$length),' ') + $length;
return substr($str, 0, $oc);
}	
	
	while($res = mysql_fetch_array($sql)){
		$desc = $res['desc'];
		$tags = $res['tags'];
	echo '<meta name="description" content="'.str_truncate($desc,150,TRUNC_BEFORE_LENGHT).'" />';
	echo '<meta name="keywords" content="'.$tags.'" />';
		}

}elseif(isset($post) && $post != ''){
   $sql = mysql_query("SELECT * FROM portifolio WHERE tituloSlug = '$post'") or die(mysql_error());   
   
	while($res = mysql_fetch_array($sql)){
		$texto = $res['texto'];
		$tags   = $res['tags'];
	echo '<meta name="description" content="'.$texto.'" />';
	echo '<meta name="keywords" content="'.$tags.'" />';
}

}else{
	$sql = mysql_query("SELECT * FROM titulo_portifolio");
		while($res = mysql_fetch_array($sql)){
			$desc = $res['desc'];
			$tags = $res['tags'];
		echo '<meta name="description" content="'.$desc.'" />';
		echo '<meta name="keywords" content="'.$tags.'" />';
	}
}
}
?> 

Posta o html pra eu ver ai ..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você diz que no site está tudo ok, mas o título da aba está com problema de acentos?

Exatamente... O site esta tudo ok, mas o título da aba está com o problema de acentos.

 

 

Rapaz.....

 

Eu acho essas funções tag e slug sua, sem necessidade.

 

VC colocou na tag <form o enctype? Se nao coloca assim: enctype="multipart/form-data"

 

 

    <form name="form" id="form" enctype="multipart/form-data" action="...  

Experimenta inserir os dados no db , mas sem usar as funções tag e slug. deve funcionar.

 

Não ha necessidade de vc codificar os textos para inserir no db não, nem ao contrario para receber.. Conforme eu disse, vc tem q deixar todo mundo falando a mesma lingua, pra evitar retrabalhos.. que é o caso dessas duas funções

 

Elas , se vc tiver um alto trafego, vao atrapalhar o desenpenho de seu site. Imagina toda hora ficar codificando e decodificando texto? Isso é usado em ssl (https das lojas virtuais)

 

Posta o html pra eu ver ai ..

 

A questão é que esse codigo slug e tag faz o seo da pagina que eu posto, o link dinamico e tals... e sim ja esta multipart/form-date

 

Esse ultimo código que postei, é um arquivo de functions que eu criei para trazer os links e metas dinamicamente.

 

O que ta atrapalhando é que se coloco ISO-8859-1 funciona tudo perfeito só que o que eu posto pelo banco de dados da erro nos acentos e se eu coloco o UTF8 da erro no titulo das páginas.. ta complicada a coisa

Compartilhar este post


Link para o post
Compartilhar em outros sites

OLha..

 

Ponto 1 - Está claro que o erro esta no armazenamento dos dados.. então pode afunilar suas dúvidas no script php..

Ponto 2 - eu continuo a pensar que o erro esta nas funções tag e slug

 

Pensemos:

  1. se sua página esta em uft8 e seu formulário esta usando enctype, isso significa que quando os dados saem do form html para o script php ele já sai codificado.
  2. dai o php pega e codifica de novo.. ou seja.. provavelmente n ta dando nada certo pq seus dados estao sendo codificados 2 vezes.. uma pela propria definição na página e outra no tratamento pelo script php...
  3. dai quando vc retoma os dado do banco de dados vc decodifica uma só vez.. pode ser ai a pala...

 

Faz assim.. deixe as funções tag e slug sem tratar os dados para ver q q acontece...

 

function slug($string){
/*
$a = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜüÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûýýþÿŔŕ"!@#$%&*()_-+={[}]/?;:.,\\\'<>';
$b = 'aaaaaaaceeeeiiiidnoooooouuuuuybsaaaaaaaceeeeiiiidnoooooouuuyybyRr                              ';
$string = utf8_decode($string);
$string = strtr($string, utf8_decode($a), $b);
$string = strip_tags(trim($string));
$string = str_replace(" ","-",$string);
return strtolower(utf8_encode($string));
*/
return $string
}


function tag($string){
/*
$a = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜüÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûýýþÿŔŕ"!@#$%&*()_-+={[}]/?;:.\\\'<>';
$b = 'aaaaaaaceeeeiiiidnoooooouuuuuybsaaaaaaaceeeeiiiidnoooooouuuyybyRr                             ';
$string = utf8_decode($string);
$string = strtr($string, utf8_decode($a), $b);
$string = strip_tags(trim($string));
return strtolower(utf8_encode($string));
*/
return $string
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Um amigo meu trocou o charset padrão da página, por isso :

 

 

<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />

 

 

Simplesmente funcionou :)

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.