2017-08-28 3 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は次のようになります。私はWeb開発に新たなんだ

<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> 

とても優しくして! :P

答えて

-1

I'veはちょうど、私の最初の答えは完全に「コード化」された単純なテキストのように答える方法を学びました。

まあ、私はあなたがCodeIgniterのを学ぶ示唆、確かにない最高のit'sが、私の見解で最も簡単にit's、そしてlaravel今日で最も有名です。

何もとにかく初心者のための簡単ではありませんが、任意のフレームワークを勉強開始する前に、まずPHPとPHPのオブジェクト指向を理解して探します。

See'ya! :)

1

編集テンプレートと置き換える実際のVARSよりも記号や特殊な名前で変数をマーク: 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のコードを実行している前提としていますので、一つの選択肢は、このような何かをすることです。次に出力バッファを使用してコンテンツをキャプチャします。

この方法では、すべての変数は、その場合には、私は小枝のような既存のものを使用することになり、そうでない場合は、セットアップに全体のテンプレートエンジンを必要とし、まだ使用可能です。

+1

ありがとう!それはうまくいった! –

-1

どのように両方のファイルが接続されていますか?あなたはajaxを使っていますか? you'reは、AJAXを使用している場合

見て、ちょうど$full_nameを返す、とjQueryやJavaScriptでそれを印刷します。

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

:あなたはちょうど同じように、ちょうどこの同じページにエコーを使用、send_mail.phpに投稿し、リダイレクトされた場合、それ以外の

(...私はあなたがこれをしなかったと考えているが、あなたはない場合)私があなたに提案できる3番目の方法は、$_SESSIONです。
とのセッションを開始するsend_mail.phpの場合:このユーザーがサイト上にある間、あなたは、この変数は、任意のページのために有効になっているだろう、とあなただけのこのよう

echo $_SESSION['full_name']; 
をエコーする必要が

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

少し気分が良くなったら、PHPフレームワークを学ぶことをお勧めします。がんばろう!

+0

Nuh私はちょうどsend_mail.phpにリダイレクトするhtml形式を使用しています。 PHPフレームワークの提案はどこから始めるのですか? –

関連する問題