Ir para conteúdo

POWERED BY:

Arquivado

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

Linton Junior

Problema de charset

Recommended Posts

Tenho um site com cms que tem me dado muito problema de charset, como não tenho muita experiência com banco e parte de collation queria tirar umas dúvidas.

Meu charset na página está lá como utf, como sempre coloco em todos, porém ele tem dado erros ISO e a maioria das vezes não funciona o utf.

 <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
  <title>CMS(<?=$company?>): </title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

 

Tenho isso na página que está dando o erro e mesmo assim ele continua apresentando os erros cada vez que puxa algo do banco.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara eu uso assim e nunca deu Problema

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
Tenta tirar esse <title> e colocar na tag <head>
Uma pergunta o que este <? = esse igual faz o que ali?

Compartilhar este post


Link para o post
Compartilhar em outros sites
character set client	utf8
(Valor global)	latin1
character set connection	utf8
(Valor global)	latin1
character set database	latin1
character set filesystem	binary
character set results	utf8
(Valor global)	latin1
character set server	latin1
character set system	utf8
character sets dir	/usr/share/charsets/
collation connection	utf8_general_ci
(Valor global)	latin1_swedish_ci
collation database	latin1_swedish_ci
collation server	latin1_swedish_ci

Isso que peguei na aba variáveis do banco

Compartilhar este post


Link para o post
Compartilhar em outros sites

tenta salvar um texto novo no banco e retorná-lo depois. As vezes é preciso editar o texto novamente!

Eu tentei, é no cadastro de um sistema de upload de pdf, tentei cadastrar uma nova entrada e fui ver o o resultado, no retorno ele veio com charset truncado do mesmo jeito, já não sei mais o que poderia ser

Compartilhar este post


Link para o post
Compartilhar em outros sites

Meu documento pra conectar tá assim

<?php
if ($_SERVER['REMOTE_ADDR'] != "127.0.0.1"){
$hostdb = "xxxxxxxxxx";
$userdb = "xxxxx";
$passdb = "xxxxx";
$namedb = "xxxxxx";
} else {
  $hostdb = "localhost";
$userdb = "root";
  $passdb = "";
  $namedb = "xxxxxx";
}
if(!($conn=mysql_connect($hostdb,$userdb,$passdb))) {
  echo "Erro retornado: ".mysql_error().".";
  echo "<p align=\"center\"><strong>Não foi possível estabelecer uma conexão com o Servidor, favor contacte-nos pelo e-mail web@falpe.com, informando o Erro retornado.</strong></p>";
  exit;
}
if(!($db=mysql_select_db($namedb,$conn))) {
  echo "Erro retornado: ".mysql_error().".";
  echo "<p align=\"center\"><strong>Não foi possível estabelecer uma conexão com o Banco de Dados MySQL, favor contacte-nos pelo e-mail web@falpe.com, informando o Erro retornado.</strong></p>";
  exit;
}
mysql_query("SET NAMES 'utf8'");
mysql_query('SET character_set_connection=utf8');
mysql_query('SET character_set_client=utf8');
mysql_query('SET character_set_results=utf8');
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

se o banco estiver com a collation correta e o documentos tbm vc nem precisa utilizar charset na conexão

mysql_query("SET NAMES 'utf8'");
mysql_query('SET character_set_connection=utf8');
mysql_query('SET character_set_client=utf8');
mysql_query('SET character_set_results=utf8');

Cara estando tudo correto é para funcionar...

 

Verifica os charsets do html devem estar utf-8.

Outra coisa é o banco de dados, verifica a collation do banco de dados e das tabelas também, porquê as vezes vc muda o banco mas as tabelas permanecem com outra collation, então deve alterar cada uma delas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

algo que acontece com frequência é, nas tentativas em solucionar, acabar por corromper os dados.

 

antes de aplicar quaiquer soluções, deve-se fazer um diagnóstico mais apurado pois não há uma causa só, portanto, as soluções podem ser diversas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Me lembro uma vez me ocorreu que estava salvando os dados no sql com o formulário em uma página com o charset diferente da que exibia os dados. Lembro que os caracteres então vinham com akelas coisas muito Lokas kkkk, então alterei o charset da página q se localizava o formulário e ai funcionou de bobs!

Talvez quem sabe possa ser isso, ou não kkkk!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mudei e mesmo assim continua a merda desse erro, cara. :(

O código é esse.

<?
  include_once 'code/parameter.inc.php';
	include 'code/codesessao.php';
 	include 'code/codeconecta.php';
	include "code/sql.inc.php";
	$ed_id = '';
	$ed_nome = '';
	$ed_data = '';
	$ed_image = '';
	$ed_arqpdf = '';
	$ed_desc = '';
	$ed_ordem = '';
	$dirName = "jornal/images";
	$dirPDF = "jornal/docs";
	$Tipo_Msg = "NCJ";
	$Msg = 1;
	if(isset($_POST['btnEnviar'])) {
    if($_POST["btnEnviar"]){
      $nome = htmlentities($_POST['c_nome'],ENT_QUOTES);
			$nome = _noInjection2($nome);
			$data = htmlentities($_POST['c_data'],ENT_QUOTES);
			$data = _noInjection2($data);
			$image = trim($_FILES['c_image']['name']);
			$arq_pdf = trim($_FILES['c_arquivo']['name']);
			$desc = htmlspecialchars($_POST['c_texto']);
			$ordem = htmlentities($_POST['sort_order'],ENT_QUOTES);
			$sql = mysql_query("SELECT * FROM jornal WHERE nome='$nome'");
			$query = mysql_num_rows($sql);
			if($query != 0) {
				$Msg = 2;
				$Erro = "Jornal j� cadastrado!";
				header("Location: code/notificar.php?Msg=$Msg&Erro=$Erro&Tipo_Msg=$Tipo_Msg");
				exit;
			} else {			
				$sql = "INSERT INTO jornal (id, nome, data, sort_order, descricao, data_cad) values ('', '$nome', '$data', '$ordem', '$desc', now())";
				$sql = mysql_query($sql);
				if($sql) {
					$vId = mysql_insert_id();
				} else {
					$Msg = 2;
					$Erro = "N�o foi poss�vel salvar, erro: ".mysql_error().".";
					header("Location: code/notificar.php?Msg=$Msg&Erro=$Erro&Tipo_Msg=$Tipo_Msg");
					exit;
				}
				if(!empty($image)){
					if(!is_dir("../".$dirName)){
						mkdir("../".$dirName, 0755, true);
					}
					if(!copy($_FILES["c_image"]["tmp_name"], "../".$dirName."/".$image)) {
						$Msg = 2;
						$Erro = "N�o foi possivel o upload da imagem, erro: ".mysql_error().".";
						header("Location: code/notificar.php?Msg=$Msg&Erro=$Erro&Tipo_Msg=$Tipo_Msg");
						exit;
					} else { 
						$query = mysql_query("UPDATE jornal SET imagem='$image' WHERE id='$vId'");
					}
				}
				if(!empty($arq_pdf)){
					if(!is_dir("../".$dirPDF)){
						mkdir("../".$dirPDF, 0755, true);
					}
					if(!copy($_FILES["c_arquivo"]["tmp_name"], "../".$dirPDF."/".$arq_pdf)) {
						$Msg = 2;
						$Erro = "N�o foi possivel o upload do arquivo do Jornal, erro: ".mysql_error().".";
						header("Location: code/notificar.php?Msg=$Msg&Erro=$Erro&Tipo_Msg=$Tipo_Msg");
						exit;
					} else { 
						$query = mysql_query("UPDATE jornal SET arquivo='$arq_pdf' WHERE id='$vId'");
					}
				}
			}
    }
	}
	if(@$_REQUEST['action']=="del") {
		if (isset($_GET['id'])) { $idx = (int)$_GET['id']; } else { $idx = '0'; }
		$query = mysql_query("DELETE FROM jornal WHERE id='$idx'");
		header("Location: jornal.php");
		exit;
	}
	if(@$_REQUEST['action']=="edit") {
		if (isset($_GET['id'])) { $idx = (int)$_GET['id']; } else { $idx = '0'; }
		$sql_e = mysql_query("SELECT * FROM jornal WHERE id='$idx'");
		$query_e = mysql_num_rows($sql_e);
		if($query_e != 0) {
			$linha = mysql_fetch_object($sql_e);
			$ed_id = $linha->id;
			$ed_nome = $linha->nome;
			$ed_nome = html_entity_decode($linha->nome,ENT_QUOTES);
			$ed_data = $linha->data;
			$ed_data = html_entity_decode($linha->data,ENT_QUOTES);
			$ed_image = $linha->imagem;
			$ed_arqpdf = $linha->arquivo;
			$ed_desc = $linha->descricao;
			$ed_ordem = $linha->sort_order;
		}				
	}
	if(isset($_POST['btnEditar'])) {
    if($_POST["btnEditar"]){
      $eid = (int)htmlentities($_POST['e_id'],ENT_QUOTES);
			$nome = htmlentities($_POST['e_nome'],ENT_QUOTES);
			$nome = _noInjection2($nome);
			$data = htmlentities($_POST['e_data'],ENT_QUOTES);
			$data = _noInjection2($data);
			$arqimg = htmlentities($_POST['e_image_a'],ENT_QUOTES);
			$image = trim( $_FILES['e_image']['name']);
			$arqpdf = htmlentities($_POST['e_arquivo_a'],ENT_QUOTES);
			$arq_pdf = trim($_FILES['e_arquivo']['name']);
			$desc = htmlspecialchars($_POST['e_texto']);
			$ordem = htmlentities($_POST['e_order'],ENT_QUOTES);
			$sql = mysql_query("SELECT * FROM jornal WHERE id='$eid'");
			$query = mysql_num_rows($sql);
			if($query != 0) {
				$sql = mysql_query("SELECT * FROM jornal WHERE nome='$nome'");
				$query = mysql_num_rows($sql);
				if($query != 0) {
					$linha = mysql_fetch_object($sql);
					if($eid != $linha->id) {
						$Msg = 2;
						$Erro = "T�tulo do Jornal j� existe";
						header("Location: code/notificar.php?Msg=$Msg&Erro=$Erro&Tipo_Msg=$Tipo_Msg");
						exit;
					}
				} 
				$sql = "UPDATE jornal SET nome='$nome', data='$data', sort_order='$ordem', descricao='$desc', data_edt=now() WHERE id='$eid'";
				$query = mysql_query($sql);
				if($query) {
					if(!empty($image)){
						if(!is_dir("../".$dirName)){
							mkdir("../".$dirName, 0755, true);
						}
						if(!copy($_FILES["e_image"]["tmp_name"], "../".$dirName."/".$image)) {
							$Msg = 2;
							$Erro = "N�o foi possivel o upload da imagem, erro: ".mysql_error().".";
							header("Location: code/notificar.php?Msg=$Msg&Erro=$Erro&Tipo_Msg=$Tipo_Msg");
							exit;
						} else { 
							$arquivo = "../".$dirName."/".$arqimg;
							if(file_exists($arquivo) && !empty($arqimg) && ($arqimg != $image) ) {
								if (!unlink($arquivo)) {
									$Msg = 2;
									//$Erro = "N�o excluiu a imagem, erro: 1:".$arquivo.", 2:".$arqimg.", 3:".$image.mysql_error().".";
									$Erro = "N�o excluiu a imagem, erro: ".$image.mysql_error().".";
									header("Location: code/notificar.php?Msg=$Msg&Erro=$Erro&Tipo_Msg=$Tipo_Msg");
									exit;
								}
							}
							$query = mysql_query("UPDATE jornal SET imagem='$image' WHERE id='$eid'");
						}
					}
					if(!empty($arq_pdf)){
						if(!is_dir("../".$dirPDF)){
							mkdir("../".$dirPDF, 0755, true);
						}
						if(!copy($_FILES["e_arquivo"]["tmp_name"], "../".$dirPDF."/".$arq_pdf)) {
							$Msg = 2;
							$Erro = "N�o foi possivel o upload do arquivo do Jornal, erro: ".mysql_error().".";
							header("Location: code/notificar.php?Msg=$Msg&Erro=$Erro&Tipo_Msg=$Tipo_Msg");
							exit;
						} else { 
							$arquivo = "../".$dirPDF."/".$arqpdf;
							if(file_exists($arquivo) && !empty($arqpdf) && ($arqpdf != $arq_pdf) ) {
								if (!unlink($arquivo)) {
									$Msg = 2;
									//$Erro = "N�o excluiu o arquivo, erro: 1:".$arquivo.", 2:".$arqpdf.", 3:".$arq_pdf.mysql_error().".";
									$Erro = "N�o excluiu o arquivo, erro: ".mysql_error().".";
									header("Location: code/notificar.php?Msg=$Msg&Erro=$Erro&Tipo_Msg=$Tipo_Msg");
									exit;
								}
							}
							$query = mysql_query("UPDATE jornal SET arquivo='$arq_pdf' WHERE id='$eid'");
						}
					}
					header("Location: jornal.php");
					exit;
				}
			}
    }
	}
?>
<!DOCTYPE html>
<html lang="pt-br">
<head>
	<meta charset="utf-8" />
  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
  <title>CMS(<?=$company?>): Jornal</title>
  <meta name="description" content="Sistema de Gerenciamento de Conte�do (CMS)" />
  <meta name="language" content="pt-br" />
  <meta name="author" content="falpe.com" />
  <meta name="viewport" content="width=device-width, initial-scale=1" />
  <link type='image/ico' rel='shortcut icon' href='images/favicon.ico' />
  <link type='text/css' rel='stylesheet' href='css/cssmain.css' />
</head>
<body>
	<?php include_once 'common/header.inc.php'; ?>
  <section>
    <article>
      <div class="breadcrumb"> <a href="index.php">Início</a> � <span>Jornal</span></div>
      <div class="b-content">
        <div id="ad" class="content left">
          <form class="fbase fpadrao_1" id="formadd" name="formadd" action="" method="post" enctype="multipart/form-data" onSubmit="javascript:return validaAddFormJornal();">
            <fieldset>
              <h2 class="title-form">Novo Jornal</h2>
              <div><span class="inputRequirement right">* Preenchimento Obrigatório</span></div>
              <label class="clear" for="c_nome">Título do Jornal <span class="red">*</span></label>
              <input type="text" id="c_nome" name="c_nome" maxlength="200" size="50" autofocus />
              <hr />
              <label for="c_data">Data do Jornal <span class="red">*</span></label>
              <input type="text" id="c_data" name="c_data" maxlength="32" size="32" />
              <hr />
              <label for="c_image">Imagem do Jornal <span class="red">*</span></label>
              <input type="file" id="c_image" name="c_image" size="34" />
              <div class="infoform1">* <em>Tamanho usado na imagem (<span>A <?=$image_jornal;?> L</span>)px.</em></div>
              <hr />
              <label for="c_arquivo">Arquivo(PDF) <span class="red">*</span></label>
              <input type="file" id="c_arquivo" name="c_arquivo" size="34" />
              <hr />
              <label for="c_texto">Descrição:</label>
              <textarea class="mg10_b" id="c_texto" name="c_texto" cols="65" rows="16"></textarea>
              <hr />
              <label for="sort_order">Ordem de classificação:</label>
              <input type="text" id="sort_order" name="sort_order" size="2" />
              <hr />
              <div class="qbotoes">
                <input class="botao_1" type="submit" id="btnEnviar" name="btnEnviar" value="Incluir" />
              </div>
            </fieldset>
          </form>
        </div>
        <div id="ed" style=" display:none;" class="content left">
          <p class="clear txt_l mg5_t left"><a class="btn_title cor-head" href="jornal.php">Novo Jornal</a></p>
          <p class="txt_r mg5_t mg10_r right"><a class="btn_title cor-head" href="jornal.php"><img src="images/icons_unshare.png" width="16" height="16" alt="Bot�o Voltar" /> Voltar</a></p>
          <form class="fbase fpadrao_1 clear" id="formedt" name="formedt" action="" method="post" enctype="multipart/form-data" onSubmit="javascript:return validaEdtFormJornal();">
            <fieldset>
              <h2 class="title-form">Editar Jornal</h2>
              <input type="hidden" id="e_id" name="e_id" value="<?php echo $ed_id;?>" />
              <input type="hidden" id="e_image_a" name="e_image_a" value="<?php echo $ed_image;?>" />
              <input type="hidden" id="e_arquivo_a" name="e_arquivo_a" value="<?php echo $ed_arqpdf;?>" />
              <div><span class="inputRequirement right">* Preenchimento Obrigatório</span></div>
              <label class="clear" for="e_nome">Título do Jornal <span class="red">*</span></label>
              <input type="text" id="e_nome" name="e_nome" maxlength="200" size="50" value="<?php echo $ed_nome;?>" />
              <hr />
              <label for="e_data">Data do Jornal <span class="red">*</span></label>
              <input type="text" id="e_data" name="e_data" maxlength="32" size="32" value="<?php echo $ed_data;?>" />
              <hr />
              <label for="e_image">Imagem do Jornal <span class="red">*</span></label>
              <input type="file" id="e_image" name="e_image" size="34" value="<?php echo $ed_image;?>" />
              <div class="infoform1">* <em>Tamanho usado na imagem (<span><?=$image_jornal;?></span>)px.</em></div>
              <hr />
              <label for="e_arquivo">Arquivo(PDF) <span class="red">*</span></label>
              <input type="file" id="e_arquivo" name="e_arquivo" size="34" />
              <hr />
              <label for="e_texto">Descrição</label>
              <textarea class="mg10_b" id="e_texto" name="e_texto" cols="65" rows="16"><?=$linha->descricao?></textarea>
              <hr />
              <label for="e_order">Ordem de classificação</label>
              <input type="text" id="e_order" name="e_order" size="2" value="<?php echo $ed_ordem;?>" />
              <hr />
              <div class="qbotoes">
                <input class="botao_2" type="submit" id="btnEditar" name="btnEditar" value="Alterar" />
              </div>
            </fieldset>
          </form>
          <p class="txt_l">* Se NÃO editar a imagem do Jornal, permanece a imagem atual!</p>
          <p class="txt_l">* Ao editar a imagem do Jornal, a anterior será excluída!!</p>
        </div>
        <?php include_once 'common/atencao.inc.php'; ?>
        <script type="text/javascript">
          <!--
          d = document.formedt;
          if (d.e_nome.value == "") {
            document.getElementById('ad').style.display='block';
            document.getElementById('ed').style.display='none';
            document.formadd.c_nome.focus();
          } else {
            document.getElementById('ad').style.display='none';
            document.getElementById('ed').style.display='block';
            d.e_nome.focus();
          }
          //-->
        </script>
        <div class="galeria">
          <?php
            $sql = mysql_query("SELECT * FROM jornal ORDER BY sort_order,id DESC");
            $query = mysql_num_rows($sql);
            if($query != 0) {
              while($linha = mysql_fetch_object($sql)) {
          ?>
          <div class="box-jorn">
            <h3 class="cor-head title-box"><?php echo $linha->id;?><strong>:</strong> <?php echo html_entity_decode($linha->nome,ENT_QUOTES);?></h3>
            <div class="qj-img">
              <div class="j-img">
                <img src="<?php echo '../'.$dirName.'/'.$linha->imagem;?>" width="200" height="250" alt="<?php echo '../'.$dirName.'/'.$linha->imagem;?>" />
              </div>
            </div>
            <div class="j-txt">
              <p class="mg10_t"><?php echo $linha->nome;?></p>
              <p class="mg10_b"><strong>Imagem:</strong> <?php echo $linha->imagem;?></p>
              <p class="mg10_b"><strong>Arquivo:</strong> <?php echo $linha->arquivo;?></p>
              <p class="mg10_b"><strong>Ordem:</strong> <?php echo $linha->sort_order;?></p>
            </div>
            <div class="qbotoes">
              <a class="botao_2" href="jornal.php?action=edit&id=<?php echo $linha->id;?>"><img src="images/icons_edit.png" width="16" height="16" alt="Bot�o Editar" /> Editar</a>
              <a class="botao_3" onClick="return confirm('Tem certeza que deseja excluir os dados do Jornal?');" href="jornal.php?action=del&id=<?php echo $linha->id;?>"><img src="images/icons_delete.png" width="16" height="16" alt="Bot�o Apagar" /> Apagar</a>
            </div>
          </div>
          <?php
              }
            }	else {
              echo "<p class='cor1'>N�o tem nenhum Jornal cadastrado at� o momento. Aqui ser� listado os Jornais cadastrados.</p>";
            }
          ?>
          <br />
        </div>
      </div>
    </article>
    <aside>
      <div class="box-content">
      	<?php
				  require_once('common/menu.inc.php');
        	menu("jornal");
        ?>
      </div>
      <?php include_once 'common/ajuda.inc.php'; ?>
    </aside>
  </section>
  <?php include_once 'common/footer.inc.php'; ?>
</body>
<script type="text/javascript" src="js/tiny_mce/tiny_mce.js"></script>
<script type="text/javascript">
	tinyMCE.init({
			mode : "textareas",
			language : "pt",
			theme : "advanced",
			theme_advanced_resizing : true,
			forced_root_block : false
	});
</script>
<script type='text/javascript' src='js/jquery-1.8.3.js'></script>
<script type='text/javascript' src='js/imgLiquid-min.js'></script>
<script type="text/javascript">
	$(function() {
		$(".imgLiquidFill").imgLiquid({fill:true});
		$(".imgLiquidNoFill").imgLiquid({fill:false});
	});
</script>
<script type='text/javascript' src='js/validador.js' charset='utf-8'></script>
<?php mysql_close($conn); ?>
</html>

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.