SdevLab – Dica de Desenvolvimento | Como receber dados de um formulário na codificação UTF8 em PHP

Fala Galera!

Segue mais uma dica rápida sobre codificação de caracteres.

Como receber dados de um formulário na codificação UTF8 em PHP

Tem uma manha de pegar os dados de um formulário que estão no padrão UTF-8 e passa-los para o ISO-8859-1.

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

Para fazer o contrário, ou seja, passar de ISO-8859-1 para UTF-8, use a função utf8_encode() como no exemplo abaixo:

$campo= utf8_encode($_POST['campo']);

Até a próxima!
😉

Anúncios

18 comentários sobre “SdevLab – Dica de Desenvolvimento | Como receber dados de um formulário na codificação UTF8 em PHP

  1. Cara já cansei de procurar em todos os cantos eu fiz um formulario simples em HTML que busca um arquivo em php para enviar os dados para meu e-mail os e-mail chegam com o IP do cliente e o DNS do meu provedor. Tipo 187.XX.XX.XX@linux.dnsdoservidor.com.br

    mas só chega com os caracteres estranhos quebrados. vou passar aqui o codigo vc dá uma olhada e se puder me dá uma força.

    <?php

    // Coloque a mensagem que irá ser enviada para seu e-mail abaixo:

    $msg = "Mensagem enviada em ".date("d/m/Y").", as Hs.".date("H:i:s")." os dados seguem abaixo:\n";
    $msg .= "Tipo de Plano: ".$_POST["plano"]."\n";
    $msg .= "Razao Social: ".$_POST["RazaoSocial"]."\n";
    $msg .= "Nome: ".$_POST["nome"]."\n";
    $msg .= "CPF: ".$_POST["cpf"]."\n";
    $msg .= "CNPJ: ".$_POST["cnpj"]."\n";
    $msg .= "CPF/CNPJ: ".$_POST["cpf/cnpj"]."\n";
    $msg .= "E-mail Responsavel Tecnico: ".$_POST["emailTecnico"]."\n";
    $msg .= "E-mail Responsavel Financeiro: ".$_POST["emailFinanceiro"]."\n";
    $msg .= "Telefone Fixo: ".$_POST["telfixo"]."\n";
    $msg .= "Telefone Cel: ".$_POST["telcel"]."\n";
    $msg .= "Data Do Vencimento: ".$_POST["dataVencimento"]."\n";
    $msg .= "Forma de Pagamento: ".$_POST["formadepagamento"]."\n";
    $msg .= "C.E.P.: ".$_POST["cep"]."\n";
    $msg .= "Endereco: ".$_POST["rua"]."\n";
    $msg .= "Numero: ".$_POST["numero"]."\n";
    $msg .= "Complemento: ".$_POST["complemento"]."\n";
    $msg .= "Bairro: ".$_POST["bairro"]."\n";
    $msg .= "Cidade: ".$_POST["cidade"]."\n";
    $msg .= "Estado: ".$_POST["estado"]."\n";
    $msg .= "Receber News: ".$_POST["newsletter"]."\n";

    // Agora iremos fazer com que o PHP envie os dados do Formulário para seu e-mail:
    mail("email@host.com", "Novo Registro",$msg,"From: $REMOTE_ADDR");
    echo "

    Obrigado!
    Prezado(a) cliente , seu cadastro foi realizado com êxito.
    Aguarde em seu e-mail
    Atenciosamente,
    Departamento Comercial
    email@host.com“;
    ?>

    • Cara, se a mensagem chegar correta, porém com caracteres estranhos no lugar de caracteres que deveriam ser acentuados por exemplo, o problema está na codificação de caracteres que você esta usando.
      Se for este o caso, aqui no blog mesmo tem algumas manhas pra tratar codificação de caracteres. Se for isto mesmo e não resolver com as dicas que tem aqui no blog me avisa que eu tento te ajudar com mais calma (semana de provas ta foda!).

      att
      sanoj
      😉

  2. Eu tive que quebrar a cabeça pra aplicar o código do amigo

    O meu ficou assim e funcionou em todos os campos, inclusive o do assunto da mensagem

    $subject = utf8_decode(“Cadastro PESSOA JURÍDICA via site AM Móveis”);

    $corpo .=utf8_decode( “Razão Social: “.$_POST[“RazaoSocial”].”\n”);
    $corpo .= utf8_decode(“Nome: “.$_POST[“nome”].”\n”);

    $headers = utf8_decode(“From:”.$_POST[‘nome’].”\n”);
    $headers .= “Reply-To: “.$_POST[‘nome’].”\n”;
    $headers .= “X-Mailer: PHP v”.phpversion().”\n”;

    Você pode acentuar tudo normalmente e usar a cedilha, desde que coloque o código antes.

    Espero ter ajudado.

    • Para fazer registros da pra usar a idéia deste post aqui mesmo, só que no lugar de mandar por email a inscrição, vc salva tudo em um banco de dados utilizando funções do Mysql.
      Se não me engano aqui no blog mesmo tem alguma coisa deste gênero na tag PHP.
      tente dar uma olhada!

  3. Olha, até pode ser por email…..mas aí seria um jeito bem estranho pra caso vc precise consultar os dados ……
    Guardar os dados em algum arquivo em pasta dentro do servidor é uma idéia melhor que guardar no email, mas, pra fazer a consulta vc vai ter que fazer um código só pra leitura dos dados…..larga mão, mais fácil mesmo usar um banco de dados!

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s