2017-09-14 113 views
1

HTML標記形式:HTML表單不會將數據傳遞給PHP腳本

<form method="post" action="send_form_email.php"> 
         <div class="form-group"> 
          <label>Name: </label> 
          <input class="form-control" type="text" placeholder="Enter Name" name="name"> 
         </div> 
         <div class="form-group"> 
          <label>Email: </label> 
          <input class="form-control" type="text" placeholder="Enter Email" name="email"> 
         </div> 
         <div class="form-group"> 
          <label>Message: </label> 
          <textarea class="form-control" placeholder="Enter Message" name="message"></textarea> 
         </div> 
         <button type="submit" name="sended" class="btn btn-default">Submit</button> 
        </form> 

php文件如下所示,包括2個數組,使變量之間的SWOP:和郵件

<?php 
    if(!isset($_POST['sended'])) { 
     died("Йуху"); 
    } 
    $name = $_POST['name']; 
    $email = $_POST['email']; 
    $message = $_POST['message']; 
    $mastermail="[email protected]"; 
    $html = file_get_contents("./email-inlined.html"); 
// Массивы с заменой 
    $search = array("#name#", "#email#", "#message#"); 
    $replace = array($name, $email, $message); 
    $email_message = str_replace($search, $replace, $html); 
// create email headers 
    $headers = 'From: '.$masteremail."\r\n". 
    'Reply-To:'.$masteremail."\r\n" . 
    'X-Mailer: PHP/' . phpversion(); 
    $headers .= 'MIME-Version: 1.0'."\r\n"; 
    $headers .= 'Content-type: text/html; charset=utf-8' . "\r\n"; 
    mail($mastermail, "письмо из Сакуры", $html, $headers); 
    ?> 
    <meta charset="utf-8"> 
    <meta name="viewport" content="width=device-width, initial-scale=1.0"> 
    <h1>Thanks!</h1> 

本身需要進入收件人:

<!DOCTYPE html> 
<html> 
<head> 
    <meta name="viewport" content="width=device-width"> 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
    <title>Письмо с сайта</title> 
</head> 

<body> 
    <div> 
     <p>letter comes from <span>#name#</span></p> 
     <p>email to reply <span>#email#</span></p> 
     <p>message itself:<br><span>#message#</span></p> 
    </div> 
</body> 
</html> 

問題是片段不會隨着來自第電子表格。意味着html數據不會傳輸到php文件。

謝謝!

+1

您正在使用您的''郵件$ html'()'調用,而不是'$ email_message'(你做了所有的更換)。 – ccKep

+0

@ccKep,但我做了$ html = file_get_contents(「./ email-inlined.html」); 意味着現在$ html存儲我想要發送的文件中的數據,我正確嗎? –

+1

'$ html = file_get_contents(「./ email-inlined.html」);'表示「獲取該文件的內容並將其存儲在$ html中」。之後,你正在對你的'str_replace'進行處理,並將結果存儲在'$ email_message'中,因此:'$ email_message'是你的電子郵件的內容,替換了佔位符,'$ html'是原來的。當你發送電子郵件時,你想發送帶有被替換的課程價值的電子郵件,因此'$ email_message'而不是'$ html'。更改'mail($ mastermail,「письмоизСакуры」,$ html,$ headers);'to'($ mastermail,「письмоизСакуры」,$ email_message,$ headers);'。 – ccKep

回答

1

問題在於你傳遞給郵件功能的問題。將$ file_contents存儲在$ html中之後,您所做的替換被存儲在$ email_message中,但您仍將$ html傳遞給該郵件。

將其更改爲

mail($mastermail, "письмо из Сакуры", $email_message, $headers);