Ir para conteúdo

POWERED BY:

Arquivado

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

rcdesign

pular linha <br>

Recommended Posts

Galera,O formulário de contato da página está funcionando direitinho... manda o e-mail formatado em html, tudo certinho... ou quase...o problema na verdade acontece quando o usuário preenche o formulário de contato e em determinado campo (comentários) ele pula linha (com a tecla Enter) para iniciar outro parágrafo.Quando a mensagem é recebida pelo e-mail de destinho essa quebra de linha não é interpretada... simplesmente aparece toda a mensagem deste campo em uma linha, um mesmo parágrafo...Como fazer para que as mudanças de parágrafos sejam interpretadas corretamente??Alguém sabe????

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu já tinha pensado nisso Fast mas como o código que chama o campo já está em html, aí tudo que eu colocar antes do campo ele acaba escrevendo como se fizesse parte do texto digitado...o código está assim:

    <tr valign='top' align='left' bgcolor='#FFFFFF'>      <td colspan='3'><span class='style2'>$comentarios</span></td></tr></table></body></html>";

Desculpa a ignorância Rico mas como eu uso a função???

Compartilhar este post


Link para o post
Compartilhar em outros sites

seguinte toda vez que você da enter na tela o php entende ele como '\n', entao você vai dar um post na textarea assim$string = $_POST['textarea'];depois você faz as substituições$string = str_replace('\n','<br>',$string);echo $string; // para testar o codigoonde: str_replace vai pegar sua variável e ver se tem algum \n na sua caixa , se tiver ele substitui por <br> que é a quebra de linha do html ok?

Compartilhar este post


Link para o post
Compartilhar em outros sites

achei que eu tinha entendido e fiz isso:

PHP [/tr][tr] $nome = $_POST['nome'];

$email = $_POST['email'];

$ddd = $_POST['ddd'];

$telefone = $_POST['telefone'];

$sobre = $_POST['sobre'];

$comentarios = $_POST['comentarios'];

$comentarios = str_replace('\n','<br>',$comentarios);

[/tr]

 

mas não mudou nada... continua aparecendo o texto na mesma linha..

Compartilhar este post


Link para o post
Compartilhar em outros sites

eh melhor usar o nl2br() do que o str_replace()eu digo isso pq o nl2br() foi feito justamente com essa funcao, e logo, eh mais adaptavelem sistema windows uma nova linha nem sempre eh passada como \n, as vezes ela eh passada com \r\n, e podem haver esses tipos de erros com sistemas operacionais diferentes por causa disso com a funcao str_replace()ja a funcao nl2br() tem todas as adaptacoes nescessarias.flw

Compartilhar este post


Link para o post
Compartilhar em outros sites

mas Rico... não pode ser "echo"...

 

isso é um form mail... o form está sendo enviado por email em html não está sendo mostrado na página.

 

o código html que chama esse campo é esse:

//Inicio do Email para o Cliente  $MailRecipiente = "rc@rcdesignbrasil.com";  //Coloque aqui o e-mail que vai receber  $MailAssunto    = $sobre;  $headers  = "MIME-Version: 1.0\r\n";  $headers .= "Content-type: text/html; charset=iso-8859-15\r\n";  $headers .= "From: $email\r\n";  $msg = "<html><head><style type='text/css'><!--.style1 {font-family: Arial, Helvetica, sans-serif; font-weight: bold; font-size: 12px; }.style2 {font-family: Arial, Helvetica, sans-serif; font-size: 12px; }.style3 {font-family: Arial, Helvetica, sans-serif; font-weight: bold; font-size: 14px; }--></style></head><body><table width='100%' border='0' cellspacing='1' cellpadding='2' bgcolor='#003366'>    <tr valign='top' bgcolor='#FFFFFF'>      <td height='21' colspan='3'><span class='style3'>Formulário de Contato</span></td>    </tr>    <tr valign='top' bgcolor='#FFFFFF'>      <td width='25%' height='21'><span class='style1'>Nome:</span></td>      <td height='21' colspan='2'><span class='style2'>$nome</span></td>    </tr>    <tr valign='top' bgcolor='#FFFFFF'>      <td width='25%' height='21'><span class='style1'>E-mail:</span></td>      <td height='21' colspan='2'><span class='style2'>$email</span></td>    </tr>    <tr valign='top' bgcolor='#FFFFFF'>      <td width='25%' height='21'><span class='style1'>Telefone:</span></td>      <td height='21' colspan='2'><span class='style2'>$ddd - $telefone</span></td>    </tr>    <tr valign='top' bgcolor='#FFFFFF'>      <td width='25%' height='21'><span class='style1'>Informações Sobre:</span></td>      <td width='82%' height='21'><span class='style2'>$sobre</span></td>    $sobre</tr>    <tr valign='top' bgcolor='#FFFFFF'>      <td height='21' colspan='3'><span class='style1'>Comentários:</span></td>    </tr>    <tr valign='top' align='left' bgcolor='#FFFFFF'>      <td colspan='3'><span class='style2'>$comentarios</span></td></tr></table></body></html>"; $MandaEmail=mail($MailRecipiente,$MailAssunto,$msg,$headers);

se eu colocar um echo para chamar o campo comentários a palavra vai ser escrita na mensagem do email...

Compartilhar este post


Link para o post
Compartilhar em outros sites

mas Rico... não pode ser "echo"...isso é um form mail... o form está sendo enviado por email em html não está sendo mostrado na página.o código html que chama esse campo é esse:

//Inicio do Email para o Cliente  $MailRecipiente = "rc@rcdesignbrasil.com";  //Coloque aqui o e-mail que vai receber  $MailAssunto    = $sobre;  $headers  = "MIME-Version: 1.0\r\n";  $headers .= "Content-type: text/html; charset=iso-8859-15\r\n";  $headers .= "From: $email\r\n";  $msg = "<html><head><style type='text/css'><!--.style1 {font-family: Arial, Helvetica, sans-serif; font-weight: bold; font-size: 12px; }.style2 {font-family: Arial, Helvetica, sans-serif; font-size: 12px; }.style3 {font-family: Arial, Helvetica, sans-serif; font-weight: bold; font-size: 14px; }--></style></head><body><table width='100%' border='0' cellspacing='1' cellpadding='2' bgcolor='#003366'>    <tr valign='top' bgcolor='#FFFFFF'>      <td height='21' colspan='3'><span class='style3'>Formulário de Contato</span></td>    </tr>    <tr valign='top' bgcolor='#FFFFFF'>      <td width='25%' height='21'><span class='style1'>Nome:</span></td>      <td height='21' colspan='2'><span class='style2'>$nome</span></td>    </tr>    <tr valign='top' bgcolor='#FFFFFF'>      <td width='25%' height='21'><span class='style1'>E-mail:</span></td>      <td height='21' colspan='2'><span class='style2'>$email</span></td>    </tr>    <tr valign='top' bgcolor='#FFFFFF'>      <td width='25%' height='21'><span class='style1'>Telefone:</span></td>      <td height='21' colspan='2'><span class='style2'>$ddd - $telefone</span></td>    </tr>    <tr valign='top' bgcolor='#FFFFFF'>      <td width='25%' height='21'><span class='style1'>Informações Sobre:</span></td>      <td width='82%' height='21'><span class='style2'>$sobre</span></td>    $sobre</tr>    <tr valign='top' bgcolor='#FFFFFF'>      <td height='21' colspan='3'><span class='style1'>Comentários:</span></td>    </tr>    <tr valign='top' align='left' bgcolor='#FFFFFF'>      <td colspan='3'><span class='style2'>$comentarios</span></td></tr></table></body></html>"; $MandaEmail=mail($MailRecipiente,$MailAssunto,$msg,$headers);
se eu colocar um echo para chamar o campo comentários a palavra vai ser escrita na mensagem do email...
você n precisa dar echo kra, eh soh exibir a variavel, como você ta fazendo la mesmo, mais usa o nl2br() no lugar no str_replace()

Compartilhar este post


Link para o post
Compartilhar em outros sites

Realmente Wilker...

 

dessa forma

PHP [/tr][tr] $nome = $_POST['nome'];

$email = $_POST['email'];

$ddd = $_POST['ddd'];

$telefone = $_POST['telefone'];

$sobre = $_POST['sobre'];

$comentarios = $_POST['comentarios'];

$comentarios = nl2br($comentarios);

[/tr]

 

funcionou...

 

Obrigado pela força pessoal! http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

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.