Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Galera, beleza total :D?
Bom, queria saber uma coisa.. Estou com um formulario que, ao dar Enviar, passa por um JS e depois, vai para o PHP. Se o php der algum erro, o JS faz um update na div do formulario falando dos erros.
Bom, tudo funciona certinho e maravilhoso. POREM, qualquer coisa escrita no textarea vira uma linha unica, ou seja, os 'enters' / quebra de linha que alguem escreveu nao sao detectados...
EXEMPLO:
"Oi
Meu nome é joao
gostei do seu site
Abs"
Vem assim pra mim
"OiMeu nome é joaogostei do seu siteAbs"
Como faco uma verificacao se existe ou nao quebras, tipo, substitui-las por \n ou <br /> pra nao vir no meu email tudo grudado?
Abaixo, os codigos, caso precisem: (OS $texto['qualquer coisa'] sao as minhas variaveis do sistema multilingua.
FORM
CODE
<div id="contactarea"><form name="contactform" id="contactform" action="">
<table width="100%" border="0" cellspacing="5" cellpadding="5">
<tr>
<td width="50%" align="right" valign="top"><?php echo $texto['contact_name']; ?>:</td>
<td width="50%" align="left" valign="middle"><input type="text" name="name" id="inputbox"></td>
</tr>
<tr>
<td align="right" valign="top">E-mail:<br /><span style="font: 9px Verdana, Arial;color:#FF0000"><?php echo $texto['contact_email_info']; ?></span></td>
<td align="left" valign="middle"><input type="text" name="email" id="inputbox"></td>
</tr>
<tr>
<td align="right" valign="top"><?php echo $texto['contact_sub']; ?>:</td>
<td align="left" valign="middle"><input type="text" name="subject" id="inputbox"></td>
</tr>
<tr>
<td align="right" valign="top"><?php echo $texto['contact_msg']; ?>:</td>
<td align="left" valign="middle"><textarea name="msg" rows="10" id="textarea"></textarea></td>
</tr>
<tr>
<td align="right" valign="top"> </td>
<td align="left" valign="middle">
<input type="button" value="<?php echo $texto['contact_send']; ?>" name="send" id="submitbutton" onclick='sendemail();'></td>
</tr>
</table>
</form>
</div>
JS/AJAX
CODE
function createRequestObject() { var ro;
var browser = navigator.appName;
if(browser == "Microsoft Internet Explorer"){
ro = new ActiveXObject("Microsoft.XMLHTTP");
}else{
ro = new XMLHttpRequest();
}
return ro;
}
var http = createRequestObject();
function sendemail() {
var msg = document.contactform.msg.value;
var name = document.contactform.name.value;
var email = document.contactform.email.value;
var subject = document.contactform.subject.value;
document.contactform.send.disabled=true;
document.contactform.send.value='Enviando|Sending';
http.open('get', 'contact/contact.php?msg='+msg+'&name='+name+'&subject='+subject+'&email='+email+'&action=send');
http.onreadystatechange = handleResponse;
http.send(null);
}
function handleResponse() {
if(http.readyState == 4){
var response = http.responseText;
var update = new Array();
if(response.indexOf('|' != -1)) {
update = response.split('|');
document.getElementById(update[0]).innerHTML = update[1];
}
}
}
PHP QUE ENVIA TUDO (email pra mim com dados + email confirmacao pro contactante)
CODE
<?php
include "../languages/setidioma.php";
if(!isset($_GET['action']))
{
die("You must not access this page directly!"); //Just to stop people from visiting contact.php normally
}
/ Now lets trim up the input before sending it /
$name = trim($_GET['name']); //The senders name
$email = trim($_GET['email']); //The senders email address
$subject = trim($_GET['subject']); //The senders subject
$message = trim($_GET['msg']); //The senders message
if ($name=="" || $email=="" || $subject=="" || $message=="" )
{
echo "contactarea|". $texto['contact_error']."<br /><a href=\"java script:window.location.reload( false );\">".$texto['back']."<a/>";
}
else {
//do email format validation
if(!eregi('^([._a-z0-9-]+[._a-z0-9-])@(([a-z0-9-]+\.)([a-z0-9-]+)(\.[a-z]{2,3})?)$', $email)) {
echo "contactarea|".$texto['invalid_email']."<br /><a href=\"java script:window.location.reload( false );\">".$texto['back']."<a/>";;
exit;
}
$to = "ddl@raphaelddl.com"; //This is the email address you want to send the email to
$noreply = "noreply@raphaelddl.com";
$headers = "From: RaphaelDDL.com <$noreply>\n";
$subjects = "WebSite Contact".$subject;
// Assunto do e-mail auto resposta que o visitante receberá!
$assunto_r = $name.",".$texto['email_resposta_assunto'];
$url_site = "http://raphaelddl.com";
$nome_ass = "Raphael DDL";
// Mensagem que será enviada no e-mail auto resposta!
$resposta =
$name.",".$texto['email_resposta_tex']."\n\n".$nome_ass."\n".$url_site;
$ip = $_SERVER['REMOTE_ADDR']; // Envia o IP do visitante para o seu e-mail!
// (Código 02) Enviar os dados capturados pelo formulário para seu e-mail!
$messages .= "RaphaelDDL.com Contact\n--------------------------\n\n";// Frase que aparecerá no topo da mensagem!
$messages .= "IP registrado: $ip\n\n";
$messages .= "Nome: $name\n";
$messages .= "E-mail: $email\n\n";
$messages .= "Assunto: $subject\n\n";
$messages .= "Mensagem: $message";
//----------------------------------------------------------------------------------------------------------------------//
// Responsável pelo envio do e-mail!
mail($to, $subjects, $messages, $headers);
// Responsável pelo envio da auto resposta!
mail($email, $assunto_r, $resposta, "From: $noreply");
echo "contactarea|<center><img src=\"../images/contact/mail.png\" style=\"width:384px;height:384px;\"><br />".$texto['contact_thx']."</center>";
}
//now lets update the "contactarea" div on the contact.html page. The contactarea| tell's the javascript which div to update.
?>
Já tentei mexer no PHP usando isso:
>
Isso te ajuda ?
http://forum.imasters.com.br/public/style_emoticons/default/seta.gif http://br.php.net/manual/pt_BR/function.nl2br.php
Eu coloquei o nl2br no ultimo $messages...
Assim
CODE
$messages .= "Assunto: $subject\n\n";
$messages .= "Mensagem:" nl2br($message);
Nem funciona mais o contact com isso...
Olhei qual o output do JS para o php.. Olha aqui.. Escrevi uns dados quaisquer
no MSG já vem sem quebra de linha... acho que tem que mudar entao é no JS e nao no PHP.............
Alguem me ajuda a remontar o meu JS? http://forum.imasters.com.br/public/style_emoticons/default/clap.gif
Carregando comentários...