Ir para conteúdo

POWERED BY:

Arquivado

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

Pattynha

[CKEditor] e [TINYMCE] o mesmo problema...

Recommended Posts

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):

 

2a6846s.jpg

 

First Name: Pat
Last Name: Teste
Email: teste@teste.com.br
Telephone:
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

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

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

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

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

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:

 

 

 

2mg8kzo.jpg

 

 

 

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

É 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

É, 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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.