Ir para conteúdo

POWERED BY:

Arquivado

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

ANGELA.BRANCO

problemas de gravar acentos no banco

Recommended Posts

dando um echo na variável, ele traz com acento, mais esta gravando no banco errado, ai vai como esta a minha página.

 

<?php include_once('includes/acessoBaseDeDados.php'); ?><?php$nome		 = $_POST['txtNomeCliente'];echo $nome;$contato	  = $_POST['txtNomeContato']; $email		= $_POST['txtEmail'];$telefone	 = $_POST['txtTelefone'];$senha		  = $_POST['txtSenha'];	$status	   = 0;$abd = new acessoBaseDeDados();$abd->conectar();$sql = "INSERT INTO aimob.Clientes (idClientes, nomeClientes, contatoClientes, emailClientes, telefoneClientes, senhaClientes, statusClientes)					  VALUES (NULL,'$nome','$contato','$email','$telefone','$senha','$status')";$abd->executa($sql);

Compartilhar este post


Link para o post
Compartilhar em outros sites

charset utf8 agora no banco não sei ver o collation

tente usar o charset=iso-8859-1, q eh codficação padrão para português e aceita acentos...tente também usar a função htmlspecialchars para inserir no banco... fica assim:
$nome = htmlspecialchars(_POST['txtNomeCliente']);$contato = htmlspecialchars($_POST['txtNomeContato']);$email = htmlspecialchars($_POST['txtEmail']);$telefone = htmlspecialchars($_POST['txtTelefone']);$senha = htmlspecialchars($_POST['txtSenha']);

Compartilhar este post


Link para o post
Compartilhar em outros sites

Angela, eu estava com esse mesmo problema, quando visualizava no IE dava certo, mas no Firefox ou Opera dava errado, então tive que fazer uma função para resolver isso:function troca( $string ){ $string = str_replace ( 'á', 'á', $string ); $string = str_replace ( 'Á', 'Á', $string ); $string = str_replace ( 'é', 'é', $string ); $string = str_replace ( 'É', 'É', $string ); $string = str_replace ( 'í', 'í', $string ); $string = str_replace ( 'Í', 'Í', $string ); $string = str_replace ( 'ó', 'ó', $string ); $string = str_replace ( 'Ó', 'Ó', $string ); $string = str_replace ( 'ú', 'ú', $string ); $string = str_replace ( 'Ú', 'Ú', $string ); $string = str_replace ( 'ç', 'ç', $string ); $string = str_replace ( 'Ç', 'Ç', $string ); $string = str_replace ( 'ã', 'ã', $string ); $string = str_replace ( 'Ã', 'Ã', $string ); $string = str_replace ( 'õ', 'õ', $string ); $string = str_replace ( 'Õ', 'Õ', $string ); $string = str_replace ( 'ü', 'ü', $string ); $string = str_replace ( 'Ü', 'Ü', $string ); $string = str_replace ( 'â', 'â', $string ); $string = str_replace ( 'Â', 'Â', $string ); $string = str_replace ( 'ê', 'ê', $string ); $string = str_replace ( 'Ê', 'Ê', $string ); $string = str_replace ( 'î', 'î', $string ); $string = str_replace ( 'Î', 'Î', $string ); $string = str_replace ( 'ô', 'ô', $string ); $string = str_replace ( 'Ô', 'Ô', $string ); $string = str_replace ( 'û', 'û', $string ); $string = str_replace ( 'Û', 'Û', $string ); $string = str_replace ( 'à', 'à', $string ); $string = str_replace ( 'À', 'À', $string ); return $string;} Espero que te ajude!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eita... :blink:

 

POG total ai hein.. rs... :D

 

Aqui vão mais duas tentativas:

 

1. Coloque esta linha no início do mesmo código que faz a inserção no banco:

header("Content-type: text/html; charset=iso-8859-1");
2. Use a função utf8_encode():

$nome = utf8_encode($_POST['txtNomeCliente']);
;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal, consegui criando o seguinte na função

 

public function query($sql = NULL, $select = TRUE)	{		$sql=iconv("UTF-8", "ISO-8859-1",$sql);		if ($this->res = mysql_query($sql))		{			if ($select) {				$this->lin = mysql_num_rows($this->res);				$this->col = mysql_num_fields($this->res);			}			} else {				$this->lin = 0;				$this->col = 0;			}	}

agora esta gravando certo;

 

só estou com um problema com a minha classe, estou fazendo assim

 

$abd = new acessoBaseDeDados();$abd->conectar();$sqlObj = "INSERT INTO aimob.Clientes (idClientes, nomeClientes, contatoClientes, emailClientes, telefoneClientes, senhaClientes, statusClientes)					  VALUES (NULL,'$nome','$contato','$email','$telefone','$senha','$status')";$abd->query($sqlObj);if ($abd->lin) {  //Verifica se o total de resultado é maior que zero	echo "deu certo";	} else {	echo "deu errado";	}

esta gravando certo: só que da os seguintes erros

 

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/aimob_mng/public_html/admin/includes/acessoBaseDeDados.php on line 50Warning: mysql_num_fields(): supplied argument is not a valid MySQL result resource in /home/aimob_mng/public_html/admin/includes/acessoBaseDeDados.php on line 51deu errado

sou nova de classe e não faço idéia de qual o problema.

 

se alguem puder me ajudar http://forum.imasters.com.br/public/style_emoticons/default/grin.gif agradeço

Compartilhar este post


Link para o post
Compartilhar em outros sites

Angela..

 

Repare que na função que você fez, você somente verificou $this->res, e não atribuiu um valor pra ela.., logo dará erro, que a função precisa do valor dela para fazer a verificação...

 

 

abraços,

 

Apolo

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.