Ola Pessoal, estou criando esse tópico novo pois um anterior que estava discutindo já perdeui seu objetivo (que aliás já até foi resolvido).
Pessoal.
Vamos por partes. Talves assim, haja quem possa me ajudar.
1) Fiz o site todo
2) Publiquei
3) Apareceram erros de acentos (acentos vem como quadradinhos.....)
4) Observei a criptografia do banco Mysql. Era utf-8 collate unicode_ci
5) Alterei a conexão com o MySql (no php mysql_connect() para utf-8 tambem com o codigo abaixo e coloquei o cabeçalho (header) do php e do html.
No arquivo de conexãoficou assim:
<?php
/* Conectando e escolhendo o banco de dados */
//Variaveis de conexao
$host = "xxxx"; // qual o servidor
$db = "xxxx"; // qual a base
$user = "xxxx"; // qual o username
$pass = "xxxx"; // qual a senha
/*
//SERVIDOR
$user = "nature";
$pass = "lavie";
*/
$link = mysql_connect($host,$user,$pass)or die("Não pude conectar: " . mysql_error());
mysql_select_db($db) or die("Não pude selecionar o banco de dados");
mysql_set_charset("utf8", $link);
?>
E, Nos cabeçalhos:
<?
header('Content-Type: text/html; charset=utf-8');
include ("global/funcoes_php/var.php");
include ("global/funcoes_php/conecta.php");
include ("TMySQL.php");
include ("TCarrinho.php");
session_start(); //start aqui por causa do carrinho em cima. Se colocar start na primeira linha, dfa erro de serialize, se colocar aqui mesmo, da erro de session.
?>...
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
....
Isso resolveu o problema dos caracters acentudados que vinham do banco por resposta a querys.
Acontece que os arquivos que não vinham dos banco (textos livres html, variaveis php) continuavam vindo com acento em caracters.
O que eu fiz
6) Abri todos os arquivos no bloco de notas e os converti de ANSI para UTF-8;
O problema é que nem todos os arquivos aceitaram a conversão. Eles, depois de convertidos, voltam a ANSI.
Mesmo assim isso resolveu os problemas com, acentos mas trouxeram outro problema: Classes e sessões não estavam funcionando pois junto com o utf-8, veio o BOM, que lance (invisivelmente ou traduz o ?> do php para caracters e isso fazia com que o session_start() não fosse a primeira coisa a aparecer no site dai dava erro de session e as classes passarm a ter comportamento irregular. O que eu fiz?
7) Peguei o Notepad ++ e fui retirando o BOM de todos os arquivos mas muitos deles deles não convertem para sem BOM.
Nota:
Coloquei o start no cabeçalho abaixo da chamada para a classe de carrinho por causa do carrinho em cima. Se colocar start na primeira linha, da erro de serialize, se colocar o serialize(), não da em nada.
Agora, esta tudo funcionando direitinho, mas, por causa da posição que tive que colocar o start(), na pagina do carrinho esta dando aviso de erro de cabneçalho embora esteja funcionando tudo bem.
Por favor, podem testra o script em www.naturelavie.com.br/novo.
O novo no fim do site é por que é site mesmo. Cadastre um usuario fictisio (qualquer endereo de smail passa) (qualquer cpf passa) faz uma compra e verifica que todas as paginas estao sem erro. Apenas a pagina do carriho e a carrinho final estão dando erro de cabeçalho. mas funciona.
Me parece que o problema tem a ver com classe e utf sem BOM
Pergunta
Carlos Rocha
Ola Pessoal, estou criando esse tópico novo pois um anterior que estava discutindo já perdeui seu objetivo (que aliás já até foi resolvido).
Pessoal.
Vamos por partes. Talves assim, haja quem possa me ajudar.
1) Fiz o site todo
2) Publiquei
3) Apareceram erros de acentos (acentos vem como quadradinhos.....)
4) Observei a criptografia do banco Mysql. Era utf-8 collate unicode_ci
5) Alterei a conexão com o MySql (no php mysql_connect() para utf-8 tambem com o codigo abaixo e coloquei o cabeçalho (header) do php e do html.
No arquivo de conexãoficou assim:
Isso resolveu o problema dos caracters acentudados que vinham do banco por resposta a querys.
Acontece que os arquivos que não vinham dos banco (textos livres html, variaveis php) continuavam vindo com acento em caracters.
O que eu fiz
6) Abri todos os arquivos no bloco de notas e os converti de ANSI para UTF-8;
O problema é que nem todos os arquivos aceitaram a conversão. Eles, depois de convertidos, voltam a ANSI.
Mesmo assim isso resolveu os problemas com, acentos mas trouxeram outro problema: Classes e sessões não estavam funcionando pois junto com o utf-8, veio o BOM, que lance (invisivelmente ou traduz o ?> do php para caracters e isso fazia com que o session_start() não fosse a primeira coisa a aparecer no site dai dava erro de session e as classes passarm a ter comportamento irregular. O que eu fiz?
7) Peguei o Notepad ++ e fui retirando o BOM de todos os arquivos mas muitos deles deles não convertem para sem BOM.
Nota:
Coloquei o start no cabeçalho abaixo da chamada para a classe de carrinho por causa do carrinho em cima. Se colocar start na primeira linha, da erro de serialize, se colocar o serialize(), não da em nada.
Agora, esta tudo funcionando direitinho, mas, por causa da posição que tive que colocar o start(), na pagina do carrinho esta dando aviso de erro de cabneçalho embora esteja funcionando tudo bem.
Por favor, podem testra o script em www.naturelavie.com.br/novo.
O novo no fim do site é por que é site mesmo. Cadastre um usuario fictisio (qualquer endereo de smail passa) (qualquer cpf passa) faz uma compra e verifica que todas as paginas estao sem erro. Apenas a pagina do carriho e a carrinho final estão dando erro de cabeçalho. mas funciona.
Me parece que o problema tem a ver com classe e utf sem BOM
Quem puder ajudar agradeço.
Link para o comentário
Compartilhar em outros sites
3 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.