2016-04-14 31 views
0

我有一個ajax請求的問題。
我有一個表單,它有兩個文本輸入和一個textarea和一個ajax函數,它發送到另一個名爲mail.php的三個輸入文本,然後mail.php發送一個包含這些數據的電子郵件,並返回1 if電子郵件發送正確,如果沒有,則發送0。它的工作原理,但在到達的電子郵件文本只在一行,如果在textarea我有3或4行。 這是形式:AJAX只發送一行文字

<div id="form"> 
    <input type="email" class="style" id="mail" maxlength="80" placeholder="Inserisci la tua e-mail" required /> 
    <br> 
    <input type="text" class="style" id="subject" maxlength="50" placeholder="Oggetto" required /> 
    <br> 
    <textarea id="message" class="style" placeholder="Scrivi il messaggio..." rows="8" maxlength="2000" required></textarea> 
    <br> 

    <button type="submit" id="submit_button"><div><p class="send_button_content">Invia</p><img id="send_button_icon" class="send_button_content" src="send_icon.png"></div></button> 
</div> 

這是Ajax的功能:

function sendEmail(){ 
       var mail; 
       var subject; 
       var message; 
       mail = $("#mail").val(); 
       subject = $("#subject").val(); 
       message = $("#message").val(); 
       if (mail !="" && subject !="" && message !="") { 
        if (emailCheck(mail)){ 
        $.post("mail.php",{mail: mail,subject: subject,message: message},function(data){alert(data);}); 
        }else{ 
         alert("The e-mail is not correct") 
        } 
       } else { 
         alert("Fill all"); 
       } 
      } 
       $("#submit_button").click(function(){sendEmail(); }); 

而且mail.php是這樣的:

$mail = $_POST['mail']; 
$subject = "Nuovo messaggio: ".$_POST['subject']; 
$message = "<html> 
     <head> 
     </head> 
     <body> 
     <p>New message from: ".$mail."<br> 
     Message: ".$_POST['message']."<br> 
     <a href='mailto:".$mail."?subject=".$_POST['subject']."' style='color:blue' target='_blank'>Reply here</a> 
     </p> 
     </body> 
     </html>"; 

if($mail != "" && $subject != "" && $message != ""){ 
    $to = "***********@gmail.com"; 
    $headers = 'MIME-Version: 1.0' . "\r\n"; 
    $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; 
    $result = mail($to,$subject,$message,$headers) or die('0'); 
    if(result){ 
     die('1'); 
    }else{ 
     die('0'); 
    } 
}else{ 
    die('0'); 
} 

是否有采取文本的方法正如我寫和發送它?

+0

,你不想注入'$ _POST'stuff直接在郵件正文中,而不是先消毒。 –

+0

不過 – moonwave99

+0

@ moonwave99那我該怎麼辦? – Francesco

回答

3

使用nl2br()

$message=nl2br($_POST['message']); 
要使用nl2br()http://php.net/manual/en/function.nl2br.php
+0

完美!謝謝! – Francesco