Pattynha 0 Denunciar post Postado Agosto 19, 2013 Boa tarde! Estou com problemas com esses editores para textarea... ambos (CKEditor e TINYMCE) apresentaram o mesmo problema... o cabeçalho aparece legal, mas quando recebo o email com os dados, não chegam formatados como deveriam: (usei o formulário padrão freecontatform para teste): First Name: PatLast Name: TesteEmail: teste@teste.com.brTelephone: Comments: <p><strong>teste</strong></p><p>teste2</p> Infelizmente não sou programadora e não entendo de php. Estou desde ontem frequentando vários sites mas até agora não consegui sanar essa dúvida. No html ficou assim: ... <script type="text/javascript" src="ckeditor/ckeditor.js"></script> </head> <body> <form name="htmlform" method="post" action="contato.php"> </tr> <tr> <td valign="top"> <label for="first_name">First Name *</label> </td> <td valign="top"> <input type="text" name="first_name" maxlength="50" size="30"> </td> </tr> <tr> <td valign="top""> <label for="last_name">Last Name *</label> </td> <td valign="top"> <input type="text" name="last_name" maxlength="50" size="30"> </td> </tr> <tr> <td valign="top"> <label for="email">Email Address *</label> </td> <td valign="top"> <input type="text" name="email" maxlength="80" size="30"> </td> </tr> <tr> <td valign="top"> <label for="telephone">Telephone Number</label> </td> <td valign="top"> <input type="text" name="telephone" maxlength="30" size="30"> </td> </tr> <tr> <td valign="top"> <label for="comments">Comments *</label> </td> <td valign="top"> <textarea class="ckeditor" name="editor1" name="comments" maxlength="1000" cols="25" rows="6"></textarea> </td> </tr> <tr> <td colspan="2" style="text-align:center"> <input type="submit" value="Submit"> </td> </tr> </form> </body> No PHP: <?php if(isset($_POST['email'])) { // CHANGE THE TWO LINES BELOW $email_to = "teste@yahoo.com.br"; $email_subject = "website html form submissions"; function died($error) { // your error code can go here echo "We are very sorry, but there were error(s) found with the form you submitted. "; echo "These errors appear below.<br /><br />"; echo $error."<br /><br />"; echo "Please go back and fix these errors.<br /><br />"; die(); } // validation expected data exists if(!isset($_POST['first_name']) || !isset($_POST['last_name']) || !isset($_POST['email']) || !isset($_POST['telephone']) || !isset($_POST['comments'])) { died('We are sorry, but there appears to be a problem with the form you submitted.'); } $first_name = $_POST['first_name']; // required $last_name = $_POST['last_name']; // required $email_from = $_POST['email']; // required $telephone = $_POST['telephone']; // not required $comments = $_POST['comments']; // required $error_message = ""; $email_exp = '/^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/'; if(!preg_match($email_exp,$email_from)) { $error_message .= 'The Email Address you entered does not appear to be valid.<br />'; } $string_exp = "/^[A-Za-z .'-]+$/"; if(!preg_match($string_exp,$first_name)) { $error_message .= 'The First Name you entered does not appear to be valid.<br />'; } if(!preg_match($string_exp,$last_name)) { $error_message .= 'The Last Name you entered does not appear to be valid.<br />'; } if(strlen($comments) < 2) { $error_message .= 'The Comments you entered do not appear to be valid.<br />'; } if(strlen($error_message) > 0) { died($error_message); } $email_message = "Form details below.\n\n"; function clean_string($string) { $bad = array("content-type","bcc:","to:","cc:","href"); return str_replace($bad,"",$string); } $email_message .= "First Name: ".clean_string($first_name)."\n"; $email_message .= "Last Name: ".clean_string($last_name)."\n"; $email_message .= "Email: ".clean_string($email_from)."\n"; $email_message .= "Telephone: ".clean_string($telephone)."\n"; $email_message .= "Comments: ".clean_string($comments)."\n"; // create email headers $headers = 'From: '.$email_from."\r\n". 'Reply-To: '.$email_from."\r\n" . 'X-Mailer: PHP/' . phpversion(); @mail($email_to, $email_subject, $email_message, $headers); ?> <!-- place your own success html below --> <meta HTTP-EQUIV="REFRESH" CONTENT="0; URL=http://www.teste.com/teste.html"> Thank you for contacting us. We will be in touch with you very soon. <?php } die(); ?> Agradeço de coração alguma ajuda. Testei no Chrome (Versão 28.0.1500.95). Vi que vida de programador não é nada fácil '-'... Compartilhar este post Link para o post Compartilhar em outros sites
dochipis 6 Denunciar post Postado Agosto 19, 2013 O e-mail esta sendo enviado como texto normal, faça assim: // create email headers $headers = 'MIME-Version: 1.0' . "\r\n"; $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; $headers .= 'From: '.$email_from."\r\n". 'Reply-To: '.$email_from."\r\n" . 'X-Mailer: PHP/' . phpversion(); Compartilhar este post Link para o post Compartilhar em outros sites
Leozitho 81 Denunciar post Postado Agosto 19, 2013 O problema é que você não está especificando no cabeçalho da mensagem de e-mail que se trata de um uma mensagem do tipo text/html, logo ele vai exibir como texto normal. Faça as seguintes alterações, substitua estas linhas: $email_message .= "First Name: ".clean_string($first_name)."\n"; $email_message .= "Last Name: ".clean_string($last_name)."\n"; $email_message .= "Email: ".clean_string($email_from)."\n"; $email_message .= "Telephone: ".clean_string($telephone)."\n"; $email_message .= "Comments: ".clean_string($comments)."\n"; Por estas: $email_message .= "First Name: ".clean_string($first_name)."<br>\n"; $email_message .= "Last Name: ".clean_string($last_name)."<br>\n"; $email_message .= "Email: ".clean_string($email_from)."<br>\n"; $email_message .= "Telephone: ".clean_string($telephone)."<br>\n"; $email_message .= "Comments: ".clean_string($comments)."<br>\n"; Em seguida substitua estas linhas: $headers = 'From: '.$email_from."\r\n". 'Reply-To: '.$email_from."\r\n" . 'X-Mailer: PHP/' . phpversion(); Por estas: $headers = 'MIME-Version: 1.0' . 'Content-type: text/html; charset=iso-8859-1' . 'From: '.$email_from."\r\n" . 'Reply-To: '.$email_from."\r\n" . 'X-Mailer: PHP/' . phpversion(); Se der erro na acentuação troque iso-8859-1 por utf-8. Qualquer dúvida é só postar. :) Compartilhar este post Link para o post Compartilhar em outros sites
Pattynha 0 Denunciar post Postado Agosto 19, 2013 Dochipis e Leozitho, AMO VOCÊS!!! :worship: Leo, infelizmente o seu não funfou, mas agradeço de muito, mas de muito coração!!❤ Dochipis, muitíiiiiiiiiiiiissimo obrigada! ❤ Não imaginam a dor que estava estourando na minha cabeça... Abraço gigante a ambos! Espero algum dia retribuir essa força!! Obs: Só infelizmente está faltando resolver esse problema da acentuação (ao trocar pelo utf-8 não funcionou também...), mas só essa parte já foi um alívio! Compartilhar este post Link para o post Compartilhar em outros sites
Leozitho 81 Denunciar post Postado Agosto 19, 2013 Desculpe, eu acabei esquecendo das quebras de linha, o correto seria: $headers = 'MIME-Version: 1.0' . "\r\n" . 'Content-type: text/html; charset=iso-8859-1' . "\r\n" . 'From: '.$email_from."\r\n" . 'Reply-To: '.$email_from."\r\n" . 'X-Mailer: PHP/' . phpversion(); Com relação a acentuação, tente deixar tudo com a mesma codificação, no HTML coloque esta linha dentro da tag <head>: <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Compartilhar este post Link para o post Compartilhar em outros sites
Pattynha 0 Denunciar post Postado Agosto 19, 2013 Oi Leo, obrigada novamente! Eu tinha tentado isso antes (andei dando uma procurada no google sobre esse assunto) e na teoria deveria funcionar =(... mas quando coloco isso no html (<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />), a parte do texto do formulário fica assim: Além de tb não funcionar no envio ('Content-type: text/html; charset=utf-8' . "\r\n"): "We are very sorry, but there were error(s) found with the form you submitted. These errors appear below. The First Name you entered does not appear to be valid.Please go back and fix these errors." Vou dar mais uma cutucada na net pra ver se acho algo. Qqer coisa dou um toque por aqui também. Obrigadão!! Compartilhar este post Link para o post Compartilhar em outros sites
Leozitho 81 Denunciar post Postado Agosto 19, 2013 É que o arquivo também precisa estar com a mesma codificação, só o documento HTML não resolve. Você tem o Notepad++ instalado aí? Se tiver faça o seguinte, abra o arquivo HTML e PHP nele e vá em Converter para UTF-8 (sem BOM) e depois salve os arquivos. Compartilhar este post Link para o post Compartilhar em outros sites
Pattynha 0 Denunciar post Postado Agosto 19, 2013 É, infelizmente não funcionou =(... Se puder fazer a gentileza de apenas dar uma olhada, o link é esse: http://www.acuradafibromialgia.com.br/teste/contatoteste3.html http://www.acuradafibromialgia.com.br/teste/contato2.html Só estou um pouco cabrera pq antes eu converti para um outro e depois não consegui mais "desconverter". Ou aparentemente parece que não funcionou. Isso pode ter influenciado? Compartilhar este post Link para o post Compartilhar em outros sites
Leozitho 81 Denunciar post Postado Agosto 19, 2013 Depois que você converte os caracteres podem ficar errados no código-fonte, daí é necessário corrigir manualmente. Você pode também tentar colocar esta linha no início do arquivo PHP: header('Content-Type: text/html; charset=utf-8'); Compartilhar este post Link para o post Compartilhar em outros sites
Pattynha 0 Denunciar post Postado Agosto 19, 2013 Ops, é http://www.acuradafibromialgia.com.br/teste/contato2.php (não consegui mais editar, snif...) Acho que esse header é o mesmo que já há no código, a não ser que tenha que colocar em outro lugar... Compartilhar este post Link para o post Compartilhar em outros sites