Ir para conteúdo

POWERED BY:

Arquivado

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

Donando

[Resolvido] Problema com acentuação e "ç"

Recommended Posts

Olá Amigos,

criei um simples formularia em AS2.0 + PHP.

Está tudo funcionando perfeitamente com excessão do subject da mensagem que é enviada.

Não consigo utilizar acentos. Gostaria também de usar o "ç".

 

abaixo o PHP:

<?php
$sugestao = $_POST['sugestao'];
$email = $_POST['email'];

// adicione seu e-mail na linha abaixo
$recipient = "fernando@zerodpi.com";

$subject = "Site GM - Sugestao de Usuario";

$msg = "Sugestão: $sugestao";
//$msg = "nome: $nome \n\nE-mail: $email \n\nMensagem: $mensagem";

// adicione seu e-mail na linha abaixo
$mailheaders = "From: webmaster@gloriamarinho.com.br";

$ok = mail("$recipient", "$subject", "$msg", "$mailheaders");
if($ok){
	echo '&ok=1&';
}else {
	echo '&ok=2&';
}
?>

Alguem poderia ajudar um novato em PHP?

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Experimente usar $subject = htmlentities($subject) ou $subject = htmlspecialchars($subject)

Só pra constar, certa vez estava tendo problema com acentuação e só se resolver depois que eu usar urldecode...

$subject = urldecode($subject)

 

Abracos!

Compartilhar este post


Link para o post
Compartilhar em outros sites

tenta assim

vai no <head> da página que vai exibir as palavras com caracteres especiais

se tiver um meta cassim

 

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

 

substitui por

 

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

 

se naum houver cola o código acima e vé se dá certo, tbm estava com esse mesmo problema com meu site

na agenda de eventos mas substitui essa linha e os caracteres apareceram normalmente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta colocar assim:

 

mail($recipient, mb_encode_mimeheader($subject,"UTF-8", "B", "\r\n"), $msg, $mailheaders);

Compartilhar este post


Link para o post
Compartilhar em outros sites

use no <head>

 

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

e codificação do arquivo em ANSI

 

no arquivo php adicione

 

$subjectfinal = utf8_encode($subject);

 

e altere assim a variavel $ok

 

$ok = mail("$recipient", "$subjectfinal", "$msg", "$mailheaders");

 

o arquivo php tambem em codificação ANSI

Compartilhar este post


Link para o post
Compartilhar em outros sites

Weudes,

vou testar sua sugestão e assim que tiver resposta eu posto aqui.

Obrigado

 

 

Dellano,

esse código é para inserir no HTML ou no própio PHP ?

 

Obrigado.

 

Obrigado a todas as respostas.

 

Assim que conseguir uma solução, eu postarei.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Weudes,

vou testar sua sugestão e assim que tiver resposta eu posto aqui.

Obrigado

 

 

Dellano,

esse código é para inserir no HTML ou no própio PHP ?

 

Obrigado.

 

Obrigado a todas as respostas.

 

Assim que conseguir uma solução, eu postarei.

 

eu uso em ambos e não tive problemas, mas use na página que vai exibir o que você escrever em os caracteres especiais.

ai fica assim

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigos,

desculpem a ignorância em PHP. mas ainda não consegui resolver o problema.

 

Fiz a alteração no head

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

mas não solucionou meu problema. Os e-mail continuam com problema de acenteação no subject.

 

tentei as alterações no php, mas sou muito leigo em php, então não soube onde colocar, o que subistituir, etc.

 

Gostaria da genteliza de vocês se puderem postar como ficaria meu codigo php para que o e-mail enviado não tivesse problemas com o subject.

quero que no subject a palavra Sugestão venha no subject do e-mail corretamente.

 

<?php 
$sugestao = $_POST['sugestao']; 
$email = $_POST['email']; 
 
// adicione seu e-mail na linha abaixo 
$recipient = "fernando@zerodpi.com"; 
 
$subject = "Site GM - Sugestao de Usuario"; 
 
$msg = "Sugestão: $sugestao"; 
//$msg = "nome: $nome \n\nE-mail: $email \n\nMensagem: $mensagem"; 
 
// adicione seu e-mail na linha abaixo 
$mailheaders = "From: webmaster@gloriamarinho.com.br"; 
 
$ok = mail("$recipient", "$subject", "$msg", "$mailheaders"); 
if($ok){ 
        echo '&ok=1&'; 
}else { 
        echo '&ok=2&'; 
} 
?>

como fica o codigo para que eu receba o e-mail com a palavra "Sugestão" no subject sem problema com o acento ?

 

Amigo como coloco codificação em ANSI em cada um dos casos?

 

obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Donando

 

Tente decodificar os echo para utf8, fazendo deste método:

 

Altere:

{
echo utf8_decode(&ok=1&);
}else 
{
echo utf8_decode(&ok=2&);
}

Simples, basta adicionar utf8_decode(), e na meta tag deixe como:

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

O que ocorre?

Simples, quando você escreve, ele vai escrever tudo sem codificação(sem caracteres, etc). E quando você adicionar a tag utf8_decode() você vai recodificar ele, mais para o metódo UTF-8.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigos,

descubri o meu problema. Na verdade o erro não foi com o PHP e sim no Flash (AS 2.0). para trocar informações entre o flash e um arquivo php é preciso de um códgigo de action script para o flash enviar corretamente os caracteres.

System.useCodepage = true;

Obrigado a atenção de todos.

 

tópico resolvido.

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.