Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa Noite Galera!
Então, estou fazendo um formulário em PHP, mas não consigo receber o 'textarea' com quebra de linha no meu e-mail, no formulário do site está quebrando, mas ao receber em meu e-mail fica em uma linha única, gostaria de saber o que devo mudar no script para ajustá-lo com quebra de linha.
O HTML e o PHP está abaixo, agradeceria muito quem puder resolver.
<!DOCTYPE html>
<head>
<meta charset="utf-8">
<title>Form em PHP</title>
<style type='text/css'>.Button { position: absolute; right: 5px; bottom: 5px; width: 100px; height: 25px; z-index: 2; border: none; border-radius: 2px;}
</style>
</head>
<body>
<form method="post" action="EnviarMail.php">
<div class="Campo">
<textarea name="mensagem" id="mensagem" wrap="hard" required="" resize="none" style="height: 200px; width: 400px; padding: 5px; border-radius: 3px; border: 1px; resize: none;">
</textarea>
</div>
<input type="submit" class="Button" name="Send" value="Enviar" id="Send" />
</form>
</body>
</html>
<?php
$mensagem = $_POST['mensagem'];
$para = 'abc@gmail.com';
$assunto = 'Teste de Formulário';"Reply-To: #";
$corpo .= "Text-Area: $mensagem";
$enviaForm = mail($para, $assunto, $corpo, $header);
if ($enviaForm)
echo "<script> alert('Enviado!'); </script>";
?>
Hospedei em um server se alguém quiser ver como fica...
Só como resumo:
Preciso quebrar a linha do text-area ao receber o e-mail, no site ele quebra mas no e-mail não.. Exemplo:
No Site:
BLABLABLABLA
BLABLABLABLA
BLABLABLABLA
No e-Mail:
BLABLABLABLABLABLABLABLABLABLABLABLA
Aliás, esqueci de colar, o server de exemplo é:
>
Use :seta: nl2br
Vai inserir <br/> ou <br> antes de todas as newlines (*\r\n*, *\n\r*, *\n* e *\r*)
Boa noite, eu usei <br />, mas o problema é no text-area, se eu concateno com <br /> o text-area vai quebrar para o próximo item, mas não ao receber a mensagem, o text-area precisa quebrar de acordo com a quebra do site. Caso eu não tenha entendido, poderia dar um Ctrl+C no *source *e modificar de acordo com sua sugestão?Você vai aplicar a função nl2br no valor vindo do textarea correto?
$textarea = nl2br( $_POST[ 'textarea' ] );
Na verdade, o que o Carlos quis dizer é que você deve utilizar a função nl2br() na hora de enviar o texto para a mensagem:
$corpo .= 'Text-Area: ' . nl2br($mensagem);
Espero que resolva!
Abraço.
Isso mesmo Rafa.
Exemplo:
<?php
if( isset( $_POST[ 'send' ] ) )
{
echo $_POST[ 'textarea' ];
echo '<hr>';
$textarea = nl2br( $_POST[ 'textarea' ] );
echo $textarea;
}
?>
<!DOCTYPE html>
<html>
<body>
<form action="" method="post">
<textarea rows="4" cols="50" name="textarea"></textarea>
<button type="submit" name="send">Send</button>
</form>
</body>
</html>Ola pessoal,
Sou novo em PHP, alguém pode me tirar uma dúvida sobre textarea?
inseri o código abaixo para meu formulário:
<div class="fieldvalue">
<textarea class="inputbox <?php echo $institute3_ler_area_required; ?>" type="text" name="institute3_ler_area" id="institute3_ler_area" cols="60" rows="5" maxlength="3000"><?php if (isset($this->provar)) echo $this->provar->institute3_ler_area; ?></textarea>
</div>
O código acima não permite que os textos sejam exibidos em frontend do site com quebra de linha, no banco de dado o texto digitado está normal, conforme digitado, com quebra de linha e espaços em branco, somente quando visualizamos no site o texto fica em sequencia.
Li os tópicos acima, sugerem pra inserir nl2br, chr(13).chr(10)... mas não faço ideia onde e como inserir no código acima.
Por gentileza, alguém pode me ajudar, melhorando esse código, permitindo que o texto seja quebrado com enter.
Obrigado pela compreensão.
no aguardo!
Use :seta: nl2br
Vai inserir <br/> ou <br> antes de todas as newlines (\r\n, \n\r, \n e \r)