Thiago0803 Postado Setembro 2, 2010 Denunciar Share Postado Setembro 2, 2010 (editado) Bom dia...Estou com um problema aqui, tentei de tudo que encontrei no fórum e não consegui...Seguinte:Tenho uma $var e vou incluí-la num campo de minha tabela!!Quando dou o insert ele vai aqueles caracteres estranhos e se eu dou um echo na variável, ele vem corretamente...Alguém imagina como corrijo isso:?Vou mandar o código do arquivo todo para vocês verem:<?php include("config.php"); include("restrito.php"); $xassunto = $_POST['assunto']; $xproblema = $_POST['problema']; $xemail = $_POST['email']; $xsetor = $_POST['setor']; if(($_POST['assunto'] == 1) || ($_POST['assunto'] == 2) || ($_POST['assunto'] == 3) || ($_POST['assunto'] == 4)) $destino = 1; else if(($_POST['assunto'] == 5) || ($_POST['assunto'] == 6) || ($_POST['assunto'] == 7) || ($_POST['assunto'] == 8) || ($_POST['assunto'] == 9) || ($_POST['assunto'] == 10) || ($_POST['assunto'] == 11)) $destino = 2; $data = date("Y-m-d H:i:s"); echo "<BR>"; echo date("d/m/Y H:i:s"); echo"<BR>"; $insert = mysql_query("INSERT INTO protocolos (IDProtocolo,UserProt,Problema,Assunto,setor,data_inicio,Status) values ('$mpID','".$_SESSION["login"]."','$xproblema','$xassunto','$xsetor','$data',1)"); $msql = mysql_query("select IDProtocolo from protocolos where UserProt='".$_SESSION["login"]."' ORDER BY IDProtocolo DESC LIMIT 1") or die("Erro na busca do Protocolo"); while($linha = mysql_fetch_array($msql)) { $xprotocolo = $linha["IDProtocolo"]; } echo "Sua solicitação foi registrada com sucesso!<BR>Entraremos em contato o mais rápido possível.<BR><BR>"; echo ("Numero do protocolo: $xprotocolo"."<BR>"); echo "Será enviado um email enviado para: $xemail<BR>"; echo "<BR>"; //echo $mpID; echo "Deseja criar uma nova solicitação?<a href='index.php'> Criar Novo</a>"; /* Inicio do envio de e-mail */ $to = $_POST["email"]; // to = email receptor $subject .= "Suporte - Brassuco"; // Assunto da mensagem $message .= "Content-type: text/html; charset=utf-8\r\n"; $message = "O problema reportado foi:<BR>"; $message .= $xproblema; $message .= "<BR>O numero do Protocolo: $xprotocolo"; $message .= "<BR> Assim que possivel entraremos em contato!<BR><BR>"; $message .= "<BR><BR>"; $message .= "<><><><><><><><><><><><><><><><><><><><><><><><><><><><><><>"; // defina o corpo da mensagem $headers = "MIME-Version: 1.0\r\n"; $headers .= "Content-type: text/html; charset=utf-8\r\n"; $headers .= "From: Suporte - Brassuco \r\n "; // defina o nome e e-mail para remetente mail($to, $subject, $message, $headers); /* Fim do envio de email */ if($destino==1) { $subject1 = "Suporte - Brassuco"; $message1 = "Foi aberto um chamado!<BR>Numero do Protocolo: $xprotocolo<BR>"; $message1 .= "Resumo do problema:<BR>"; $message1 .= "<BR>"; $message1 .= $xproblema; $headers1 = "MIME-Version: 1.0\r\n"; $headers1 .= "Content-type: text/html; charset=utf-8\r\n"; $headers1 .= ("From: '".$_SESSION['login']."'"); mail($to1, $subject1, $message1, $headers1); } else { $subject2 = "Solicitação de Suporte"; $message2 = "Foi aberto um chamado!<BR>Numero do Protocolo: $xprotocolo<BR>"; $message2 .= "Resumo do problema:<BR>"; $message2 .= "<BR>"; $message2 .= $xproblema; $headers2 .= "MIME-Version: 1.0\r\n"; $headers2 .= "Content-type: text/html; charset=utf-8\r\n"; $headers2 .= ("From: '".$_SESSION['login']."'"); mail($to2, $subject2, $message2, $headers2); } unset($xassunto,$xproblema,$xemail,$xsetor,$insert,$_SESSION['login']); //Destrói todas as variáveis(). @session_destroy(); ?> </DIV>E eu não entendo...As vezes o titulo do e-mail vem zuado também e tal!Foda...=\No banco tenho esta informação:Conjunto de caracteres MySQL: UTF-8 Unicode (utf8)que é a mesma codificação que uso no PHP =\mas não sei o porque ele está dando isso...na maioria das vezes o $xproblema fica OK...mas na inserção ele zoa! Editado Março 23, 2011 por Thiago0803 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Renato Penna Postado Setembro 2, 2010 Denunciar Share Postado Setembro 2, 2010 Primeiro: Tome cuidado com os palavrões aqui no fórum.Segundo: A solução do problema. Veja este. link. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Thiago0803 Postado Setembro 3, 2010 Autor Denunciar Share Postado Setembro 3, 2010 Ah, desculpa...Até porque foda é um SUPER palavrão!!Da próxima vez eu falo "Super Complicado..."valeu...vou ver o link! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Thiago0803 Postado Setembro 3, 2010 Autor Denunciar Share Postado Setembro 3, 2010 O collation do banco já está UTF-8-GENERAL_CI...Eu tenho N tabelas nesse banco e apenas UMA não está incluindo caracteres com acento...O que eu poderia modificar no código PHP, por ex, para eliminar este problema?Sabe?Por exemplo:Tenho este insert que inclui no banco as informações do formulário!!$insert = mysql_query("INSERT INTO protocolos (IDProtocolo,UserProt,Problema,Assunto,setor,data_inicio,Status) values ('$mpID','".$_SESSION["login"]."','$xproblema','$xassunto','$xsetor','$data',1)");AÍ eu não precisaria incluir algo para ele já inserir com utf-8 e blablabla? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Thiago0803 Postado Setembro 3, 2010 Autor Denunciar Share Postado Setembro 3, 2010 Deixa eu descrever certinho o que acontece, fica mais fácil...Nesse envio.php eu pego as informações de um formulário.1. Ele exibe na tela para mim a variável $xproblema.2. Ele insere o problema no banco.3. Ele envia para o meu e-mail.4. Ele envia para o e-mail cadastrado no formulário.----------------------------------1. As informações inseridas na variável acima são mostradas sem problema de caracteres nem nada. Ela é exibida na tela normalmente.2. As informações são inseridas no banco, porém aí com problemas na acentuação.3. No e-mail, as informações são enviada corretamente e sem problemas.4. Para o e-mail da pessoa também, sem problemas.O que faço?Sim, já usei a busca...Nada resolveu!! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Renato Penna Postado Setembro 3, 2010 Denunciar Share Postado Setembro 3, 2010 Tente usar o COLLATION como latin1_general_cs Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Thiago0803 Postado Setembro 8, 2010 Autor Denunciar Share Postado Setembro 8, 2010 É. então...Não dá! =\Cara...Estou achando que o problema está na conversão de caracteres especiais do próprio código PHP.Eu tentei usar algumas funções, str, por exemplo e não consegui a conversão.=\Não preciso dos acentos, mas não sei como tirar também. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Thiago0803 Postado Setembro 8, 2010 Autor Denunciar Share Postado Setembro 8, 2010 Posso dar mais um bom exemplo...Eu entro no PhpMyAdmin, acesso minha tabela e faço uma alteração.Por exemplo:Campo Problema:Ele está com os caracteres estranhos e tal...Eu entro, edito manualmente o que está escrito no campo, através daquele lápis que fica ao lado do nome do campo e altero.usuáropara Usuário e ele fica certo.Se fosse um problema de collation do banco, ele nem deixava correto não é?Cada vez mais complicado isso =\ Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Romero Dias Postado Setembro 8, 2010 Denunciar Share Postado Setembro 8, 2010 Já tentou utilizar a função antes de inserir a string no banco?utf8_decode(); Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Thiago0803 Postado Setembro 9, 2010 Autor Denunciar Share Postado Setembro 9, 2010 O decode não lembro de ter tentado...Vou fazer o teste depois de fazer algumas coisas aqui, pois se conseguir uma pendência aqui nem preciso mais mudar isso!Se quiser fechar, fique à vontade. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Thiago0803
Bom dia...
Estou com um problema aqui, tentei de tudo que encontrei no fórum e não consegui...
Seguinte:
Tenho uma $var e vou incluí-la num campo de minha tabela!!
Quando dou o insert ele vai aqueles caracteres estranhos e se eu dou um echo na variável, ele vem corretamente...
Alguém imagina como corrijo isso:?
Vou mandar o código do arquivo todo para vocês verem:
E eu não entendo...
As vezes o titulo do e-mail vem zuado também e tal!
Foda...
=\
No banco tenho esta informação:
Conjunto de caracteres MySQL: UTF-8 Unicode (utf8)
que é a mesma codificação que uso no PHP =\
mas não sei o porque ele está dando isso...na maioria das vezes o $xproblema fica OK...
mas na inserção ele zoa!
Editado por Thiago0803Link para o comentário
Compartilhar em outros sites
9 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.