Ir para conteúdo

POWERED BY:

Arquivado

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

RogerSilva

Codigo PHP não acentua

Recommended Posts

Moçada, sou novo por aqui e preciso de luz de vocês expert.

 

No script abaixo ele não acentua e a hora esta vindo toda errada.

Me dê uma luz de como resolver isso. Por favor.

Caso precisem do HTML eu posto, mas ele esta em UTF-8.

 

<?php
$date = date("d/m/Y H:i:s");

// ****** ATENÇÃO ********
// ABAIXO ESTÁ A CONFIGURAÇÃO DO SEU FORMULÁRIO.
// ****** ATENÇÃO ********

// RECEBE OS VALORES VINDO DO FORMULÁRIO E ATRIBUI AS VARIÁVEIS
$nome = $_POST['nome'];
$email = $_POST['email'];
$telefone = $_POST['telefone'];
$cidade = $_POST['cidade'];
$assunto = $_POST['assunto'];
$textodamensagem = $_POST['textodamensagem'];

//CABEÇALHO - ONFIGURAÇÕES SOBRE SEUS DADOS E SEU WEBSITE
$nome_do_site="";
$email_para_onde_vai_a_mensagem = "";
$nome_de_quem_recebe_a_mensagem = "";
$exibir_apos_enviar='';

//MAIS - CONFIGURAÇOES DA MENSAGEM ORIGINAL
$cabecalho_da_mensagem_original="From: $name <$email>\n";
$assunto_da_mensagem_original="Contato do Site";

// FORMA COMO RECEBERÁ O E-MAIL (FORMULÁRIO)
// ******** OBS: SE FOR ADICIONAR NOVOS CAMPOS, ADICIONE OS CAMPOS NA VARIÁVEL ABAIXO *************
$configuracao_da_mensagem_original="

ENVIADO POR:\n
Nome: $nome\n
Email: $email\n
Telefone: $telefone\n
Cidade: $cidade\n
Assunto: $assunto\n
Mensagem: $textodamensagem\n
ENVIADO EM: $date

";

//CONFIGURAÇÕES DA MENSAGEM DE RESPOSTA
// CASO $assunto_digitado_pelo_usuario="s" ESSA VARIAVEL RECEBERA AUTOMATICAMENTE A CONFIGURACAO
// "Re: $assunto"
$assunto_da_mensagem_de_resposta = "Confirmação";
$cabecalho_da_mensagem_de_resposta = "From: $nome_do_site < $email_para_onde_vai_a_mensagem>\n";
$configuracao_da_mensagem_de_resposta="Obrigado por entrar em contato!\nEstaremos respondendo em breve...\nAtenciosamente,\nGráfica Expressa\n\nEnviado em: $date";

// ****** IMPORTANTE ********
// A PARTIR DE AGORA RECOMENDA-SE QUE NÃO ALTERE O SCRIPT PARA QUE O SISTEMA FINCIONE CORRETAMENTE
// ****** IMPORTANTE ********

//ESSA VARIAVEL DEFINE SE É O USUARIO QUEM DIGITA O ASSUNTO OU SE DEVE ASSUMIR O ASSUNTO DEFINIDO
//POR VOCÊ CASO O USUARIO DEFINA O ASSUNTO PONHA "s" NO LUGAR DE "n" E CRIE O CAMPO DE NOME
//'assunto' NO FORMULARIO DE ENVIO
$assunto_digitado_pelo_usuario="s";

//ENVIO DA MENSAGEM ORIGINAL
$headers = "$cabecalho_da_mensagem_original";

if($assunto_digitado_pelo_usuario=="s"){
$assunto = "$assunto_da_mensagem_original";
}
$seuemail = "$email_para_onde_vai_a_mensagem";
$mensagem = "$configuracao_da_mensagem_original";
mail($seuemail,$assunto,$mensagem,$headers);

//ENVIO DE MENSAGEM DE RESPOSTA AUTOMATICA
$headers = "$cabecalho_da_mensagem_de_resposta";
if($assunto_digitado_pelo_usuario=="n"){
$assunto = "$assunto_da_mensagem_de_resposta";
}else{
$assunto = "Re: $assunto";
}

$mensagem = "$configuracao_da_mensagem_de_resposta";
mail($email,$assunto,$mensagem,$headers);
echo "<script>window.location='$exibir_apos_enviar'</script>";

?>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Em qual encoding você está salvando o arquivo em si?

 

Eu estava com esse problema aqui e ao salvar com o mesmo encoding do html isso foi resolvido.

No meu caso era iso-8859-1.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O HTML é este:

 

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pt-br" lang="pt-br">
<head>
    <title>Formulário de Contato</title>
	  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
 

<form name="senddata" method="post" action="form.php">
<table width="100%" border="0" cellspacing="2" cellpadding="2">
<tr>
<td class="tahoma-02-cinza"><div align="right">Nome:<b><i><font size="1" face="Verdana" color="#FFFFFF"></font></i></b></div></td>
<td><b><i><font size="1" face="Verdana" color="#FFFFFF">
<input name="nome" type="text" class="fomu" size="40"/>
</font></i></b></td>
</tr>
<tr>
<td class="tahoma-02-cinza"><div align="right">E-mail:<i><font size="1" face="Verdana" color="#FFFFFF"></font></i></b></div></td>
<td><b><i><font size="1" face="Verdana" color="#FFFFFF">
<input name="email" type="text" class="fomu" size="40"/>
</font></i></b></td>
</tr>
<tr>
<td class="tahoma-02-cinza"><div align="right">Telefone:<b><i><font size="1" face="Verdana" color="#FFFFFF"></font></i></b></div></td>
<td><b><i><font size="1" face="Verdana" color="#FFFFFF">
<input name="telefone" type="text" class="fomu" id="telefone2" size="40"/>
</font></i></b></td>
</tr>
<tr>
<td class="tahoma-02-cinza"><div align="right">Cidade:<i><b><i><font size="1" face="Verdana" color="#FFFFFF; color:#C40000"></font></i></b></i></b></div></td>
<td><b><i><b><i><font size="1" face="Verdana" color="#FFFFFF; color:#C40000">
<input name="cidade" type="text" class="fomu" size="40"/>
</font></i></b></i></b></td>
</tr>
<tr>
<td class="tahoma-02-cinza"><div align="right">Assunto:<b><i><font size="1" face="Verdana" color="#FFFFFF; color:#C40000"></font></i></b></div></td>
<td><b><i><font size="1" face="Verdana" color="#FFFFFF; color:#C40000">
<input name="assunto" type="text" class="fomu" size="40"/>
</font></i></b></td>
</tr>
<tr>
<td class="tahoma-02-cinza"><div align="right">Mensagem:<i><font size="1" face="Verdana" color="#FFFFFF"></font></i></b></div></td>
<td><b><i><font size="1" face="Verdana" color="#FFFFFF">
<textarea name="textodamensagem" cols="40" rows="10" class="fomu"></textarea>
</font></i></b></td>
</tr>
<tr>
<td></td>
<td><input name="enviar" type="submit" class="formcop" value="Enviar"/>
  <input name="limpar" type="reset" class="formcop" value="Limpar"/></td>
<td>
</tr>
</table>
</form>

</body>
</html>


Já fiz, mas nada de dá certo. Tá osso.

Recebo tudo Ok no inbox, mas quando tem uma palavra acentuada, babau...kkkk

Compartilhar este post


Link para o post
Compartilhar em outros sites

é... resolvi um problema no meu site similar agora... com iso-8859-1 o texto estático até acentuava, mas quando atualizava algo por ajax dava pau na acentuação... salvei os arquivos como utf-8 e defini o enconding como utf-8 e aparentemente resolveu.

Compartilhar este post


Link para o post
Compartilhar em outros sites

É Cristiano, eu até agora nada.

Será que deve ser por eu usar o iWeb para criar as páginas (site).

MAs eu acho que não, porque quando abro o html gerado pelo iWeb esta UTF-8.

 

MISTÉRIO.

 

Mas vai ter uma solução para este script.

Compartilhar este post


Link para o post
Compartilhar em outros sites

é só no seu script de e-mail que está tendo este problema de acentuação ou em todo o site?

 

quanto ao problema da hora coloca este código no inicio do código e ve se resolve.

date_default_timezone_set("America/Sao_Paulo");

Compartilhar este post


Link para o post
Compartilhar em outros sites

rockrgo,

ficaria assim a questão da hora?

 

$date = date_default_timezone_set("America/Sao_Paulo");

O erro de acentuação somente ocorre no recebimento do formulário (inbox).

 

Grato.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já tentou alguma dessas funções do PHP?

http://br1.php.net/utf8_encode

http://br1.php.net/manual/pt_BR/function.utf8-decode.php

 

Em um sistema que eu trabalho preciso usar essas funções o tempo todo no momento de receber o valor do POST e salvar no banco e no momento de retornar do banco para um XML.

Geralmente quando eu as uso resolve o problema.

Compartilhar este post


Link para o post
Compartilhar em outros sites

referente a hora coloca somente isto.

date_default_timezone_set("America/Sao_Paulo");

 

Quanto aos acentos, acho que a solução do Ricardo vai resolver

 

 

 

 

Defina no cabeçalho do e-mail os caracteres com UTF-8.

 

 

'Content-type: text/html; charset=iso-8859-1' . "\r\n";

 

se não resolver usa a função utf8_decode que resolve, mas o ideal é definir o charset no cabeçalho.

 

exemplo:

 

$textodamensagem = utf8_decode($_POST['textodamensagem']);

Compartilhar este post


Link para o post
Compartilhar em outros sites

Defina no cabeçalho do e-mail os caracteres com UTF-8. VIXI.

 

Você esta falando para fazer isso, definir UTF-8 = Já está assim.

 

'Content-type: text/html; charset=iso-8859-1' . "\r\n";

Já tentei o iso-8959-1 e nada.

 

$textodamensagem = utf8_decode($_POST['textodamensagem']);

Onde entra este script?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Defina no cabeçalho do e-mail os caracteres com UTF-8. VIXI.

 

Você esta falando para fazer isso, definir UTF-8 = Já está assim.

 

'Content-type: text/html; charset=iso-8859-1' . "\r\n";

Já tentei o iso-8959-1 e nada.

 

$textodamensagem = utf8_decode($_POST['textodamensagem']);

Onde entra este script?

 

Lá em cima onde você está recebendo os valores do POST.

 

Ou se quiser pode ser aqui:

 

 


$mensagem = utf8_decode($configuracao_da_mensagem_original);

 

Ou aqui:

 


mail($email,$assunto,utf8_decode($mensagem),$headers);

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado!

Irei testar amanhã e coloco o resultado.

É que estou com um cliente aqui e agora tá difícil pra ver isso.

 

Mas de toda forma o meu muito obrigado pela atenção.

 

Dando certo ou não amanhã eu falo.

 

Valew PHP's experts.

 

Boa noite.

 

Roger.

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.