2017-08-28 34 views
1

我有這個send_mail.php文件。我試圖回顯一些插入到表單中的字段,而我無法使用回顯函數。我究竟做錯了什麼?如何在file_get_contents html模板中回顯輸入數據字段?

<?php 

$date = $_POST['date']; 
$full_name = $_POST['full_name']; 
$biz_name = $_POST['biz_name']; 
$activity = $_POST['activity']; 
$afm = $_POST['afm']; 
$phone = $_POST['phone']; 
$fax = $_POST['fax']; 
$mobile = $_POST['mobile']; 
$address = $_POST['address']; 
$city = $_POST['website']; 
$email = $_POST['email']; 
$discount = $_POST['discount']; 
$payment_amount = $_POST['payment_amount']; 
$seller_name = $_POST['seller_name']; 


$to = $email; 
$subject = "Welcome to our site!"; 


$htmlContent = file_get_contents("email_template.html"); 

// Set content-type header for sending HTML email 
$headers = "MIME-Version: 1.0" . "\r\n"; 
$headers = "Content-type: text/html; charset=UTF-8" . "\r\n"; 

// Send email 
if(mail($to,$subject,$htmlContent,$headers)): 
    $successMsg = 'Mail sending successful.'; 
else: 
    $errorMsg = 'Oops! Something went wrong.'; 
endif; 
?> 

而且我email_template.html看起來是這樣的:

<html> 
<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
    <title>Welcome to our site</title> 
<head/> 
    <body> 
     <h1> Welcome <?php echo $full_name; ?> </h1> 
     ... 
    </body> 
</html> 

我在web開發新的,所以要溫柔! :P

回答

-1

我剛剛學會了如何回答簡單文字,我的第一個答案完全是「編碼」。

嗯,我建議你學習codeigniter,它不是最好的,但它是我認爲的最簡單的,現在最着名的是laravel。

無論如何,初學者並不容易,但在開始研究任何框架之前,先查找理解php和php oo。

See'ya! :)

1

編輯模板,並通過標記符號或特殊名稱的變量不是取代真正的增值經銷商: email_template.html:

<html> 
<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
    <title>Welcome to our site</title> 
<head/> 
    <body> 
     <h1> Welcome --full_name-- </h1> 
     ... 
    </body> 
</html> 

PHP:

<?php 
$htmlContent = file_get_contents("email_template.html"); 
$htmlContent = str_replace("--full_name--",$_POST['full_name'],$htmlContent); 
1

file_get_contents()不解析文件PHP。因此,一個選擇是做這樣的事情:

ob_start(); 
include('email_template.html'); 
$htmlContent = ob_get_contents(); 
ob_end_clean(); 

當您使用include()它假設你正在運行的PHP代碼。然後我們使用輸出緩衝區來捕獲內容。

這種方式所有的變量仍然可用,否則你需要設置一個完整的模板引擎,在這種情況下,我會使用現有的像Twig。

+1

謝謝!這工作得很好! –

-1

這兩個文件是如何連接的?你在用阿賈克斯嗎?

看,如果您使用的是ajax,只需返回$full_name,然後用jquery或javascript打印。 (我相信你沒有這一點,但如果你這樣做......)

否則,如果你只是發佈,並重定向到send_mail.php,只是使用echo此同一頁上,就像:

// Send email 
if (mail($to,$subject,$htmlContent,$headers)): 
    echo = 'Mail sending successful.'; 
else : 
    echo = 'Oops! Something went wrong.'; 
endif ; 

我可以向你建議的第三種方法是使用$_SESSION
send_mail.php開始一個會話:

session_start(); 
//and declare 
$_SESSION["full_name "]= $fullname; 

,那麼你就擁有這個變量的任何頁面有效,而這個用戶是在您的網站,你就必須附和這種方式

echo $_SESSION['full_name']; 

當你感覺有點改進時,我建議你學習一個php框架,這對你有很大的幫助。祝你好運!

+0

嗯,我只是使用重定向到send_mail.php的html表單。 任何建議在PHP框架開始? –

相關問題